Awk 仅在字段3中替换
我的语法有什么问题Awk 仅在字段3中替换,awk,Awk,我的语法有什么问题 awk -F '|' 'sub/\s*\w*/,"Visit our website!","$3"' merchant_report 应该是转弯了 |bob|jones| blagblag| texas |tom|markus| | alabama 进入 此行可以执行您想要的操作: awk -F'|' -v OFS="|" 'NR==1{$4="Visit our website!"}1' file 在您的awk代码中: 您已经使用了FS来分隔字段,您不需要子功能,只
awk -F '|' 'sub/\s*\w*/,"Visit our website!","$3"' merchant_report
应该是转弯了
|bob|jones| blagblag| texas
|tom|markus| | alabama
进入
此行可以执行您想要的操作:
awk -F'|' -v OFS="|" 'NR==1{$4="Visit our website!"}1' file
在您的awk代码中:
- 您已经使用了
来分隔字段,您不需要FS
子功能,只需直接设置
$3
- 即使使用
函数,语法也不正确。您可以通过sub()
mangawk
- 它实际上不是
,而是$3
。因为您的行以$4
|
- 如果只想更改第一行,则应添加
,否则awk将对所有行进行更改NR==1
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
在
awk
中,您只需为字段指定给定行的新值。如果您对替代方法更满意,请尝试使用sedsed
:
sed '1s/|[^|]*/|Visit our website!/3' file
|bob|jones|Visit our website!| texas
|tom|markus| | alabama
1) 并非所有AWK都支持\s和\w。2) sub()是一个函数,不是来自sed的“s”命令。3) 您可能希望将命令放在awk主体的动作部分,而不是contion(又名pattern)部分。现在请参阅awk手册,并购买Arnold Robbins的第三版《有效的awk编程》一书。
sed '1s/|[^|]*/|Visit our website!/3' file
|bob|jones|Visit our website!| texas
|tom|markus| | alabama