Esto recorrerá cada archivo, asignará todo antes del guión bajo en el nombre del archivo a la variable sample
, luego sustituirá >NODE
por $sample
en el archivo usandosed
:
for file in /path/to/files/*;do
sample=$(echo "${file}" | sed s/_.*//)
sed -i "s/^>NODE/${sample}/" ${file}
done
Есть ли конкретный вариант использования entr
? Обычно настоятельно не рекомендуется разбиратьls
:
Почему *не *parse `ls`(и что делать вместо )?
Думаю, в вашем случае лучше использоватьincrond
:
https://www.howtoforge.com/tutorial/trigger-commands-on-file-or-directory-changes-with-incron/(IN _CREATE будет представлять особый интерес в вашей ситуации)
Насколько мне известно, incrond
не может просматривать подкаталоги, поэтому, если вам нужно также просматривать все подкаталоги /tmp, возможно, watcher
больше подходит для вашей ситуации:
https://stackoverflow.com/questions/44088179/watch-a-subdirectory-with-incron
Предостережение, не зная вашего особого случая использования :/tmp используется всеми видами процессов. Возможно, было бы не очень разумно/практично пытаться отслеживать все его изменения.
Тип
ls -d /tmp/* | entr -p echo "New File"
на одной панели. Затем на другой панели введите
echo "hello" > /tmp/test123456.txt
Обратите внимание, что «Новый файл» отображается на первой панели