连接两个文件并用换行符分隔

连接两个文件并用换行符分隔

我有两个文件:

txt:

3 5 7 9 19 20 

目录.txt:

000010
100001
111001

如果我只是使用 cat,就没有换行符。我需要一个命令来提供一个如下所示的文件:

3 5 7 9 19 20 
000010
100001
111001

答案1

如果正如 steeldriver 建议的那样,您的文件没有以换行符结尾,您可以尝试:

awk '{print}' k.txt h.txt > newfile

或者,如果你喜欢打高尔夫球

awk 1 k.txt h.txt > newfile

或者

perl -lne 'print' k.txt h.txt 

或者

( cat k.txt ; echo ""; cat h.txt; echo ) > newfile

或者

echo "$(cat k.txt)"; echo "$(cat h.txt)"

答案2

使用 bash 尝试一下:

cat k.txt <(echo) h.txt > new.txt

答案3

使用sed

sed '/^/ r h.txt' k.txt

或更好(谢谢@steeldriver

sed '$a\' k.txt h.txt

使用ed

(echo "0a"; cat k.txt; echo "."; echo "wq") | ed -s h.txt

以及缺少的换行符k.txt

(echo "0a"; cat k.txt; echo ""; echo "."; echo "wq") | ed -s h.txt

或者如果您需要单独的输出文件:

(echo "0a"; cat k.txt; echo ""; echo "."; echo "w out.txt"; echo "q") | ed -s h.txt

答案4

意识到 file1 可能不包含换行符,为什么不直接自己添加换行符呢?(cat file1.txt; printf "\n"; cat file2.txt ) > out.txt另一种方法是printf "\n" | cat file1.txt - file2.txt

相关内容