将 2 个文件与 Shell 中的过去合并 - 换行符/回车符 return \n 问题
Merge 2 files with past in Shell - line break /carriage return \n problem
我想在每一行中合并两个文件:
fichier1.txt:
1;2;3
4;5;6
7;8;9
更进一步 2.txt:
a;b
c;d
e;f
我想让文件 fichierfusionné.txt 看起来像这样:
1;2;3;a;b
4;5;6;c;d
7;8;9;e;f
这是我的代码:
paste -d ';' {fichier1,fichier2}.txt > 'fichierfusionné.txt'
使用此代码,我的文件 fichierfusionné.txt 包含:
1;2;3
;a;b
4;5;6
;c;d
7;8;9;e;f
我不知道如何解决这个问题,
有什么办法可以避免 \n 吗?
你能帮帮我吗?
使用 awk
是处理不同类型换行符的一种方法。
这将使输出具有 Linux \n
行结尾。
awk 'FNR==NR {arr[FNR]=[=10=]; next}{print arr[FNR],[=10=]}' RS='(\r\n|\r|\n)' OFS=';' fichier1.txt fichier 2.txt > 'fichierfusionné.txt'
这个将使用 DOS 风格的 \r\n
行结尾。
awk 'FNR==NR {arr[FNR]=[=11=]; next}{print arr[FNR],[=11=]}' RS='(\r\n|\r|\n)' ORS='\r\n' OFS=';' fichier1.txt fichier 2.txt > 'fichierfusionné.txt'
最后,MAC \r
行结尾。
awk 'FNR==NR {arr[FNR]=[=12=]; next}{print arr[FNR],[=12=]}' RS='(\r\n|\r|\n)' ORS='\r' OFS=';' fichier1.txt fichier 2.txt > 'fichierfusionné.txt'
我想在每一行中合并两个文件:
fichier1.txt:
1;2;3
4;5;6
7;8;9
更进一步 2.txt:
a;b
c;d
e;f
我想让文件 fichierfusionné.txt 看起来像这样:
1;2;3;a;b
4;5;6;c;d
7;8;9;e;f
这是我的代码:
paste -d ';' {fichier1,fichier2}.txt > 'fichierfusionné.txt'
使用此代码,我的文件 fichierfusionné.txt 包含:
1;2;3
;a;b
4;5;6
;c;d
7;8;9;e;f
我不知道如何解决这个问题, 有什么办法可以避免 \n 吗?
你能帮帮我吗?
使用 awk
是处理不同类型换行符的一种方法。
这将使输出具有 Linux \n
行结尾。
awk 'FNR==NR {arr[FNR]=[=10=]; next}{print arr[FNR],[=10=]}' RS='(\r\n|\r|\n)' OFS=';' fichier1.txt fichier 2.txt > 'fichierfusionné.txt'
这个将使用 DOS 风格的 \r\n
行结尾。
awk 'FNR==NR {arr[FNR]=[=11=]; next}{print arr[FNR],[=11=]}' RS='(\r\n|\r|\n)' ORS='\r\n' OFS=';' fichier1.txt fichier 2.txt > 'fichierfusionné.txt'
最后,MAC \r
行结尾。
awk 'FNR==NR {arr[FNR]=[=12=]; next}{print arr[FNR],[=12=]}' RS='(\r\n|\r|\n)' ORS='\r' OFS=';' fichier1.txt fichier 2.txt > 'fichierfusionné.txt'