为什么当我使用粘贴过程合并两个文件时有困难 returns
why there are hard returns when I merge two files using paste process
要合并下面的两个文件,每个文件有 1 列 4 行,
file1
1
2
3
4
file2
5
6
7
8
我使用代码"paste file1 file2 > file3"
预期结果如下,以制表符分隔
file3
1 5
2 6
3 7
4 8
但得到的文件是
file3
1
5
2
6
3
7
4
8
我该如何处理这个问题?
您的数据必须在每一行都有空格。
与,
合并作为分隔符将解释一切。
paste -d, file1 file2 > file3
cat file3
1
,5
2
,6
3
,7
4
,8
到trim这些空格
使用 sed:
paste file1 file2 > file3
sed -e 's/\s\+/,/g' file3 > final.txt
使用 perl:
paste file1 file2 > file3
perl -pne 's/\s+/,/g' < file3 > final.txt
避难所做了。如果您在 windows 中创建文件并复制到 unix,那么它可能有 ^M 个字符。您可以使用
查看这些详细信息
cat -v file1
您可以使用
替换 ^M 个字符
tr -d '\r' < file3 > final.txt
或
dos2unix file3 final.txt
或
sed 's/^M//g' <file3 >final.txt
要合并下面的两个文件,每个文件有 1 列 4 行,
file1
1
2
3
4file2
5
6
7
8
我使用代码"paste file1 file2 > file3"
预期结果如下,以制表符分隔
file3
1 5
2 6
3 7
4 8
但得到的文件是
file3我该如何处理这个问题?
1
5
2
6
3
7
4
8
您的数据必须在每一行都有空格。
与,
合并作为分隔符将解释一切。
paste -d, file1 file2 > file3
cat file3
1
,5
2
,6
3
,7
4
,8
到trim这些空格
使用 sed:
paste file1 file2 > file3
sed -e 's/\s\+/,/g' file3 > final.txt
使用 perl:
paste file1 file2 > file3
perl -pne 's/\s+/,/g' < file3 > final.txt
避难所做了
cat -v file1
您可以使用
替换 ^M 个字符tr -d '\r' < file3 > final.txt
或
dos2unix file3 final.txt
或
sed 's/^M//g' <file3 >final.txt