我的语法出了什么问题?
awk -F '|' 'sub/\s*\w*/,"Visit our website!","$3"' merchant_report
假设转
|bob|jones| blagblag| texas
|tom|markus| | alabama
到
|bob|jones|Visit our website!| texas
|tom|markus| | alabama
答案 0 :(得分:1)
这一行可以做你想做的事:
awk -F'|' -v OFS="|" 'NR==1{$4="Visit our website!"}1' file
你的awk代码中的:
FS
分隔字段,您不需要sub
功能,只需直接设置$3
。sub( )
函数,您的语法也不正确。您可以通过man gawk
$3
,而是$4
。因为您的行以|
NR==1
,否则awk将对所有行进行更改代码示例:
kent$ cat file
|bob|jones| blagblag| texas
|tom|markus| | alabama
kent$ awk -F'|' -v OFS="|" 'NR==1{$4="Visit our website!"}1' file
|bob|jones|Visit our website!| texas
|tom|markus| | alabama
答案 1 :(得分:0)
在awk
中,您只需为该字段指定给定行的新值。如果您对替换方法感到满意,请尝试sed
:
sed '1s/|[^|]*/|Visit our website!/3' file
|bob|jones|Visit our website!| texas
|tom|markus| | alabama