用sed添加到行尾

Ope*_*way 8 bash sed

给出一个包含以下几行的纯文本文档:

c48 7.587 7.39
c49 7.508 7.345983
c50 5.8 7.543
c51 8.37454546 7.34
Run Code Online (Sandbox Code Playgroud)

我需要在行结束后添加一些信息2个空格,因此对于每行我会得到:

c48 7.587 7.39  def
c49 7.508 7.345983  def
c50 5.8 7.543  def
c51 8.37454546 7.34  def
Run Code Online (Sandbox Code Playgroud)

我需要为成千上万的文件做这件事.我想这可能与sed有关,但不知道如何.任何提示?对于这种情况,你能给我一些关于教程或表格的链接吗?

谢谢

gho*_*g74 14

如果您的所有文件都在一个目录中

sed -i.bak 's/$/  def/' *.txt
Run Code Online (Sandbox Code Playgroud)

做递归(GNU查找)

find /path -type f -iname '*.txt' -exec sed -i.bak 's/$/  def/' "{}" +;
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到sed的介绍

您可以使用的其他方式,

AWK

for file in *
do
  awk '{print $0" def"}' $file >temp
  mv temp "$file"
done 
Run Code Online (Sandbox Code Playgroud)

Bash shell

for file in *
do
  while read -r line
  do
      echo "$line def"
  done < $file >temp
  mv temp $file
done
Run Code Online (Sandbox Code Playgroud)