Unix 使用awk替换文件中的word
我有一个文件,其中有几行:Unix 使用awk替换文件中的word,unix,awk,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 不确定您是想要sed还是awk,但这是在awk中: $ awk '{print "letter is
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
不确定您是想要sed还是awk,但这是在awk中:
$ awk '{print "letter is " $1}' file
letter is a
letter is b
letter is c
letter is d
不确定您是想要sed还是awk,但这是在awk中:
$ awk '{print "letter is " $1}' file
letter is a
letter is b
letter is c
letter is d
目前,您没有
{action}
块,因此您的条件计算两个空变量this
和is
,将它们与第一个字段$1
连接,并检查结果是否为真(非空字符串)。是的,因此默认操作会打印每一行
听起来您想这样做:
awk '{ print "letter is", $1 }' raw.txt
尽管在这种情况下,您也可以使用sed:
sed 's/^/letter is /' raw.txt
此命令匹配每行的开头并添加字符串
请注意,我将文件作为参数传递,而不是将
cat
与管道一起使用。目前,您没有{action}
块,因此您的条件会计算两个空变量this
和is
,将它们与第一个字段$1
连接,并检查结果是否为真(非空字符串)。它是,因此默认操作打印每行
听起来您想这样做:
awk '{ print "letter is", $1 }' raw.txt
尽管在这种情况下,您也可以使用sed:
sed 's/^/letter is /' raw.txt
此命令匹配每行的开头并添加字符串
请注意,我将文件作为参数传递,而不是将
cat
与管道一起使用。问题是“使用sed替换文件中的单词”还是“使用awk打印文件中的行”?这是为了awk-为混淆道歉问题是哪一个,“使用sed替换文件中的单词”还是“使用awk打印文件中的行”?是为了awk-为混乱道歉