给出一个包含以下几行的纯文本文档:
c48 7.587 7.39
c49 7.508 7.345983
c50 5.8 7.543
c51 8.37454546 7.34
我需要在行结束后添加一些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
我需要为成千上万的文件执行此操作。我想这可能与sed有关,但不知道如何。任何提示?对于这种情况,你能否给我一些关于教程或表格的链接?
由于
答案 0 :(得分:14)
如果您的所有文件都在一个目录中
sed -i.bak 's/$/ def/' *.txt
做递归(GNU find)
find /path -type f -iname '*.txt' -exec sed -i.bak 's/$/ def/' "{}" +;
您可以看到here了解sed的介绍
您可以使用的其他方式,
awk
for file in *
do
awk '{print $0" def"}' $file >temp
mv temp "$file"
done
Bash shell
for file in *
do
while read -r line
do
echo "$line def"
done < $file >temp
mv temp $file
done
答案 1 :(得分:3)
for file in ${thousands_of_files} ; do
sed -i ".bak" -e "s/$/ def/" file
done
这里的关键是搜索和替换s///
命令。在这里,我们用2个空格和你的字符串替换行$
的结尾。