我具有文件的以下输出:
host1|ip1|LCOS|
host2|ip2|Linux|
hos3|ip3|Linux|DiskStation Manager
设置了$4
(DiskStation Manager
)的地方,$3
应该更改为DiskStation Manager
我尝试了以下但没有任何变化
{ if( $4 ~ /Diskstation Manager/) $3=$4}
if
操作部分内显示明确的{..}
条件。这样的好处是可以忽略处理any其他包含您期望的字符串的$4
的其他行[[not。 {..}1
会根据列值和输入/输出字段分隔符的修改简单地重写您的行。
awk -v FS="|" 'BEGIN { OFS = FS } $4 == "DiskStation Manager" { $3 = $4 }1'
或者,如果您要使用正则表达式方法,请在字符串周围放置锚以使其完全匹配,
$4 ~ /^DiskStation Manager$/