如何使用同一文件中另一列的值替换一列中的值

时间:2016-04-10 22:36:14

标签: awk sed

我有一个包含数千行和列的文件,其中两列是IP1和IP2。 IP1始终相同192.168.100.1

* example.com,192.168.100.1,10.10.1.1,5effd70e9d99b1acf,10,63,58,42,0,21,84055280,0 example2.com,192.168.100.1,10.10.1.50,255b2l429c8f23ee,10,63,37,42,1,21,1451066297,0 example3.com,192.168.100.1,10.10.1.58,589b7a5f8677b,11,68,37,42,1,20,1451066297,0

............. *

我想用IP2的值替换IP1的值,并删除IP2的值。

我试过了:

sed -i 's/192\.168\.100\.1/$(grep 192\.168\.100\.1 file | awk -F',' '{print $2}')/' file

发生以下错误: sed:-e表达式#1,char 68:未终止的`s'命令

请帮忙。

1 个答案:

答案 0 :(得分:0)

救援!消除awk,这应该做......

sed -i 's/192\.168\.100\.1,//' file

sed命令找到字符串“192.168.100.1”,并将其替换为空。

.在sed命令中有特殊含义,因此需要反斜杠。有关手册页的更多信息。