我正在尝试cat
三个文件,并在每个文件之后获取并插入一个换行符,我想要使用如下所示的内容:
cat f1 f2 f3|tr "\EOF" "\n"
没有成功。
什么是最简单的方法来实现呢?
cat f1 <(echo) f2 <(echo) f3 <(echo)
要么
perl -pe 'eof&&s/$/\n/' abc
只要你cat
文件,他们之间将没有EOF,没有其他方式来找到边界,所以我建议像for file in f1 f2 f3; do cat $file; echo; done
for file in f1 f2 f3; do cat $file; echo; done
for file in f1 f2 f3; do cat $file; echo; done
或者缩进,
for file in f1 f2 f3; do cat $file; echo; done
EOF
不是一个字符,甚至不是CTRL-D – 这只是在交互式输入中显示EOF的常用终端方法。 所以你不能使用工具翻译字符以某种方式修改它。
对于这个简单的例子, 最简单的方法就是不用担心试图在一个单一的cat
🙂
cat f1; echo; cat f2; echo; cat f3
将做的伎俩就好了。 任何大量的文件可能都值得一个脚本,但我不明白这个小案件的必要性。
如果您想要将所有这些流组合在一起进行进一步处理,只需在子外壳中运行它们即可:
( cat f1; echo; cat f2; echo; cat f3 ) | some_process
尝试这个:
find f1 f2 f3 | xargs cat
我遇到了类似的问题,对我来说最合适的是我的情况是:
grep "" file1 file2 file3 | awk -F ':' '{print $2}'