Я могу изменить заголовок и трейлер одного файла, который выглядит так:
header1=randomstring,header2=0000
body body body
header1=randomerstring,header2=00000
с помощью этой команды:
sed "s/header1=.*header2=/header1=teststring1.teststring2.$(date +%d%m%Y)teststring3,header2=/" file
получить:
header1=teststring1.teststring2051919teststring3,header2=0000
body body body
header1=teststring1.teststring2051919teststring3,header2=00000
Когда я пытаюсь использовать цикл for (см. ниже), чтобы применить указанную выше команду к нескольким файлам с одним и тем же префиксом, я продолжаю получать эту ошибку:bash: syntax error near unexpected token `/bin/busybox.exe'
. Как я могу это исправить? Также команда для одного файла распечатывает содержимое файла, я хотел бы удалить это, когда я перебираю файлы, я просто не уверен, что удалить.
Ниже приведена команда цикла for, которая выдает ошибку:
for file in fileprefix.*; sed "s/header1=.*header2=/header1=teststring1.teststring2.$(date +%d%m%Y)teststring3,header2=/" i; done
Опять ошибка bash: syntax error near unexpected token `/bin/busybox.exe'.
Скопируйте/вставьте свой код в shellcheck.net и исправьте сообщения об ошибках, которые он сообщает.
Поместите do
перед «sed» в цикле, и он должен работать; do и done идут только парами.
Вау, я слишком долго смотрел на это -_- Спасибо!
Вам не хватает
do
.