awk如何用字符串表示数字

awk如何用字符串表示数字,awk,concatenation,Awk,Concatenation,我试图在文件的每一行后面附加一些文本。 我有一个文件,每行由一个数字组成: 123 123 123 如果我运行awk'{print$1“a”}myfile.txt,我会得到: a23 a23 a23 我很确定这是因为档案里的号码。我用常规行的其他文件运行了它。这个问题不会发生。但是我找不到任何地方谈论这个 我还试过awk'{char=$1“a;print char}'这很奇怪!请试一试 awk '{print $0 "a"}' file 真奇怪!请试一试 awk '{print $0 "a"}

我试图在文件的每一行后面附加一些文本。 我有一个文件,每行由一个数字组成:

123

123

123

如果我运行
awk'{print$1“a”}
myfile.txt,我会得到:

a23

a23

a23

我很确定这是因为档案里的号码。我用常规行的其他文件运行了它。这个问题不会发生。但是我找不到任何地方谈论这个


我还试过
awk'{char=$1“a;print char}'

这很奇怪!请试一试

awk '{print $0 "a"}' file

真奇怪!请试一试

awk '{print $0 "a"}' file

输入文件行在回车前都以control-M结尾,可能是因为它是在Windows中创建的。使用:

cat -v myfile.txt
awk '{print $1"a"}' myfile.txt | cat -v

要查看它们,然后对输入文件运行
dos2unix
或类似操作以删除它们,请重试脚本。

在回车之前,输入文件行的每一行都以control-M结尾,这可能是因为它是在Windows中创建的。使用:

cat -v myfile.txt
awk '{print $1"a"}' myfile.txt | cat -v

要查看它们,然后在输入文件上运行
dos2unix
或类似操作以删除它们,请重试脚本。

+1。或者,
dos2unix
可以通过添加
\r
作为字段分隔符来避免:
awk-F'\r'{print$1“a}'
非常感谢大家。这成功了!我试图在vim中搜索^M,但它说找不到模式,因此我没有意识到问题。
vim
将隐藏
^M
,因为它会自动检测文件是dos还是unix格式,并相应调整。+1。或者,
dos2unix
可以通过添加
\r
作为字段分隔符来避免:
awk-F'\r'{print$1“a}'
非常感谢大家。这成功了!我试图在vim中搜索^M,但它说找不到模式,因此我没有意识到问题。
vim
将隐藏
^M
,因为它会自动检测文件是dos格式还是unix格式,并进行相应调整。