#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
, чтобы увидеть немного отладочной информации