使用awk替换文件中的单词

时间:2017-05-11 08:59:56

标签: unix awk

我有一行文件:

a
b
c
d

我想cat将此文件转换为awk命令以生成如下内容:

letter is a
letter is b
letter is c
letter is d

使用类似的东西:

cat file.txt | awk 'letter is $1'

但它没有按预期打印出来:

$ cat raw.txt | awk 'this is $1'
a
b
c
d

2 个答案:

答案 0 :(得分:2)

目前,您没有المال المال 阻止,因此您的条件会评估两个空变量{ action }this,并将它们与第一个字段is连接起来,并且检查结果是否为 true (非空字符串)。它是,因此默认操作打印每一行。

听起来你想这样做:

$1

虽然在这种情况下,您也可以使用sed:

awk '{ print "letter is", $1 }' raw.txt

此命令匹配每行的开头并添加字符串。

请注意,我将文件作为参数传递,而不是将sed 's/^/letter is /' raw.txt 与管道一起使用。

答案 1 :(得分:1)

不确定你是否想要sed或awk,但这是在awk中:

$ awk '{print "letter is " $1}' file
letter is a
letter is b
letter is c
letter is d