我最近发布了这个问题-paste -d " "
command outputting a return separated file
但是我担心文本文件中的格式会导致它出错。因此,我尝试使用awk
来做到这一点。
我对awk
经验不足,但是目前我有以下知识:
awk {print $1} file1 | {print $1} file2 > file 3
我应该使用这种语法吗?出现错误,提示缺少}
,每个文件包含一列数字和相同数量的行。
答案 0 :(得分:0)
看到您的OLD帖子似乎是您可以控制文件中的M个字符。要删除文件中的M个控制字符,请使用dos2unix
实用程序或使用以下命令。
第一个:要在各处删除垃圾字符。
tr -d '\r' < Input_file > temp_file && mv temp_file Input_file
2nd:要仅在最后一行删除它们,请使用以下命令。
awk '{sub(/\r$/,"")} 1' Input_file > temp_file && mv temp_file Input_file
我相信,一旦您删除了垃圾字符,您的paste
命令也应该可以正常工作。在输入文件中修复控件M字符后,运行以下命令。
paste -d " " Input_file1 Input_file2 > Output_file
或将2个文件串联起来,只需使用:(考虑到您的Input_files包含1列,或者您希望输出中包含整行)
cat Input_file1 Input_file2 > output_file
答案 1 :(得分:0)
awk
进行救援:
awk 'FNR==NR{a[FNR]=$1;next}{print a[FNR],$1}' a.txt b.txt > output.txt
a.txt:
1
2
3
4
5
b.txt:
A
B
C
D
E
output.txt:
1 A
2 B
3 C
4 D
5 E