我尝试使用cat
命令组合两个文件,但遇到问题。
original.txt
============
foo
bar
foo
bar
以下是我的剧本。
cat original.txt | wc -l > linecount.txt | cat linecount.txt original.txt > original.txt
此脚本返回错误,表示"输入文件和输出文件相同。"。
预期结果是这样的。
original.txt
============
4
foo
bar
foo
bar
有什么想法吗?
答案 0 :(得分:3)
您可以使用:
{ wc -l < original.txt; cat original.txt; } > linecount.txt &&
mv linecount.txt original.txt
或使用awk
:
awk 'NR==FNR{++n; next} FNR==1{print n} 1' original.txt{,} > linecount.txt &&
mv linecount.txt original.txt
或者:
awk -v n=$(wc -l < original.txt) 'NR==1{print n} 1' original.txt > linecount.txt &&
mv linecount.txt original.txt
答案 1 :(得分:0)