我想cat
三个文件,并获得并插入一个换行符\n
每个文件后,我想用类似的:
cat f1 f2 f3|tr "\EOF" "\n"
没有成功。
什么是实现这一目标的最简单的方法?
我想cat
三个文件,并获得并插入一个换行符\n
每个文件后,我想用类似的:
cat f1 f2 f3|tr "\EOF" "\n"
没有成功。
什么是实现这一目标的最简单的方法?
cat f1 <(echo) f2 <(echo) f3 <(echo)
要么
perl -pe 'eof&&s/$/\n/' a b c
只要你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
会做的伎俩就好了。 文件的任何较大的数量可能是值得的脚本,但我不能看到这个小案例的必要性。
如果你想所有这些流合并进行进一步的处理,只是在子shell中运行它们:
( cat f1; echo; cat f2; echo; cat f3 ) | some_process
我有一个类似的问题,什么工作最适合我,我我的情况是:
grep "" file1 file2 file3 | awk -F ':' '{print $2}'
试试这个:
find f1 f2 f3 | xargs cat