Linux

如何在之前/之後/之後使用許多固定行cat文件?

  • January 25, 2021

我正在尋找一個 bash one-liner,它可以cat包含多個具有多個固定行的文件。

文件 1.txt:

file1 line 1
file1 line 2

文件2.txt

file2 line 1
file2 line 2

然後我正在尋找類似的東西

cat-with-strings foo file1.txt bar file2.txt baz

生產輸出

foo
file1 line 1
file1 line 2
bar
file2 line 1
file2 line 2
baz

如何使用標準 linux 工具(sed、awk、cat 等)在一行 bash 中執行此操作,並且創建任何文件來保存foobarbaz

在我的手機上打字,所以為一個未經測試的草圖道歉。

當然,您可以將所有內容都連接(cat),就好像所有內容都是文件一樣:

cat <( echo foo ) file1.txt <( echo bar ) file2.txt <( echo baz )
sh -c 'while [ $# -gt 0 ] ; do echo "$1" ; cat "${2:-/dev/null}" ; shift 2 2>/dev/null; done' - foo file1 bar file2 baz

一般來說,要求它是 1-liner 是很愚蠢的,如果你把它放在 shell 函式或文件中,誰在乎它是否是一行?

引用自:https://unix.stackexchange.com/questions/630954