我有一个布局为:

tableName1|counterVariable1
tableName2|counterVariable2

我想用其他变量替换countervariable1,比如countervariablenew。
我怎样才能做到这一点?
我尝试过各种sed/awk方法,最接近的方法如下:
cat $fileName | grep -w $tableName | sed -i 's/$tableName\|counterVariable/$tableName\|counterVariableNew'

但是这三个命令没有正确合并,请帮助!

最佳答案

awk -F'|' -v OFS='|' '/tableName1/ {$2="counterVariableNew"}1' file
tableName1|counterVariableNew
tableName2|counterVariable2

这将搜索A (tableName1)并将B (counterVariable1)替换为counterVariableNew
或者使用sed
sed -r '/tableName1/ s/(^.*\|)(.*)/\1counterVariableNew/g' file
tableName1|counterVariableNew
tableName2|counterVariable2

对于单词有界搜索:将模式括在\<\>内。
sed -r '/\<tableName1\>/ s/(^.*\|)(.*)/\1counterVariableNew/g' file
awk -F'|' -v OFS='|' '/\<tableName1\>/ {$2="counterVariableNew"}1' file

08-04 21:41