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

Linux 使用shell将.txt文件转换为.asc,linux,bash,shell,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 您可以使用tr

我有以下文本文件:

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

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

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

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

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

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