使用shell将.txt文件转换为.asc

时间:2018-02-20 07:05:49

标签: linux bash shell

我有以下文本文件:

ifile.txt
1.1 4.5
2.3 2.3
3.4 30.5

我想在开头添加一行(%file1),然后将其转换为.asc文件。

我使用了以下命令:

(echo "%file1" ; cat ifile.txt)  > ofile.asc

但输出结果如下:

ofile.asc
%file1
1.1 4.5^M
2.3 2.3^M
3.4 30.5^M

所需的输出是:

ofile.asc
%file1
1.1 4.5
2.3 2.3
3.4 30.5

2 个答案:

答案 0 :(得分:1)

您可以使用tr代替cat从原始文件中删除DOS换行符:

{ echo "%file1"; tr -d '\r' < ifile.txt; } > ofile.asc

此外,不需要分叉shell,因为我们可以使用{ ... }对许多命令进行分组。

答案 1 :(得分:1)

您可以使用sed消除^M个字符:

{ echo "%file1" ; sed ‘s/^M//‘ file.txt ; } > ofile.asc