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

3

我有以下文本文件:

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个回答

1
您可以使用tr而不是cat来从原始文件中删除DOS换行符:
{ echo "%file1"; tr -d '\r' < ifile.txt; } > ofile.asc

此外,我们不需要分叉一个 shell,因为我们可以使用{ ... }来组合多个命令。

1
您可以使用sed命令来消除^M字符:
{ echo "%file1" ; sed ‘s/^M//‘ file.txt ; } > ofile.asc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接