[英]bash cat multiple files
我正在嘗試對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}'
如果您不只使用cat
工具,請使用bat
https://github.com/sharkdp/bat 。
bat -p file1 file2 file3
此外,如果您有動態文件數,可以使用通配符:
bat -p *.extension
嘗試這個:
find f1 f2 f3 | xargs cat
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.