我有一个布局为:
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