Как добавить строку текста к нескольким файлам в каталоге

#unix #aix

#unix — система #aix

Вопрос:

мне нужно добавить строку текста в начале каждого файла (текст команд) в директории (не все из них).

есть ли какой-либо способ сделать это?

строка будет выглядеть примерно как ИМЯ ИДЕНТИФИКАТОРА ДАТЫ с пробелами между ними, например: a12345 20190418 tarik

(файлы не содержат .txt в конце имена больше похожи на .abcd_1452a)

Ответ №1:

Вы можете использовать сценарий, подобный этому (файл oneline_file содержит строку, которую вы хотите добавить) :

 echo "a12345 20190418 tarik">oneline_file
for i in *.abcd_1452
do
cat oneline_file "$i" >/tmp/"$i"
mv /tmp/"$i" "$i"
done
 

Комментарии:

1. строка будет выглядеть примерно как ИМЯ ИДЕНТИФИКАТОРА ДАТЫ с пробелами между ними, например: (файлы не содержат .txt в конце имена больше похожи на .abcd_1452a) a12345 20190418 romeo таким образом, сценарий будет следующим: для i в * .txt выполните cat a12345 20190418 romeo «$i» > /tmp/»$i» mv /tmp/»$i» «$i» готово

2. @TarikMESSAOUDI Шаблон *.txt — это только пример, конечно, вы можете использовать шаблон, который соответствует вашим файлам, например .abcd_* . Вам нужно будет записать нужные данные в качестве первой строки в файл перед запуском for цикла. Опять oneline_file же, это пример, так что вы могли бы сделать что-то вроде echo "a12345 20190418 tarik" > oneline_file . Если вы хотите получить лучший ответ, вы должны добавить все соответствующие детали к своему вопросу.

3. @TarikMESSAOUDI, как уже упоминал Бодо, это всего лишь пример. Проверьте улучшенную версию (я редактирую свой ответ)

4. @RomeoNinov не сработал… он создал новый файл (onelinefile), но строка не была добавлена к другим файлам

5. @TarikMESSAOUDI, выполните свой скрипт с bash -x , чтобы увидеть немного отладочной информации