如何在bash文件夹中的每个文件的开头添加一个字符串?

the*_*rin 16 linux bash shell file

我希望能够将字符串前置到文件夹中每个文本文件的开头.如何在Linux上使用bash执行此操作?

dry*_*dam 30

这样做会.如果您对每个文件执行相同的文本,则可以提高效率...

for f in *; do 
  echo "whatever" > tmpfile
  cat $f >> tmpfile
  mv tmpfile $f
done
Run Code Online (Sandbox Code Playgroud)

  • `$ f`都应该是``$ f``.做一些错误检查也是件好事.此外,它还会更改原始文件的权限和所有权. (9认同)

gho*_*g74 19

你可以这样做,没有循环和 cat

sed -i '1i whatever' *
Run Code Online (Sandbox Code Playgroud)

如果要备份文件,请使用-i.bak

或使用 awk

awk 'FNR==1{$0="whatever\n"$0;}{print $0>FILENAME}' *
Run Code Online (Sandbox Code Playgroud)


anu*_*ava 5

你可以做到这一点使用在sed 1个单指令以及

for f in *; do
  sed -i.bak '1i\
  foo-bar
  ' ${f}
done
Run Code Online (Sandbox Code Playgroud)