LINUX.ORG.RU

Добавить имена файлов в файлы


0

1

Всем добрый вечер. Возникла необходимость в следующем. Имеется некоторе количество текстовых файлов. Необходимо добавить в начало каждого из них имя этого же самого файла

т.е например есть файл 123 с содержанием

aaaaa
bbbbb
ccccc
необходимо изменить файл 123, чтобы он содержал
123

aaaaa
bbbbb
ccccc

То ли я плохо курил маны find-a и sed-a то ли я чего-то не понимаю, но пока это не удалось. Буду рад любой помощи



Последнее исправление: darth-nerd (всего исправлений: 1)

Ответ на: комментарий от anonymous

Ну, спасибо кончено, но это мало чем мне поможет. Дело в том, что файлов много. Был бы только один, проблем бы не возникло :)

Сам пытался делать так

 find $PWD -type f -exec sed '1i\                                 
{}' {} > {}.new \; 

Но оно входит в какой-то цикл и не работает как надо. И кроме того, в третьем случает замены {} на имя файла не происходит, поэтому создается всего один новый файл с именем {}.new, вместо 123.new

darth-nerd
() автор топика
Ответ на: комментарий от darth-nerd

Запиши вызов sed в скрипт, аля

#! /bin/sh

ffname=$1
fname=$(basename $ffname)
sed "1s%^%$fname\n\n%" "$ffname" > "${ffname}.new"

и вызывай

find $PWD -type f -exec scriptname.sh {} \;

gman
()

может лучше в extended attributes записать?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.