在列中查找模式并将其替换为awk

时间:2017-10-18 16:53:17

标签: awk

我试图做以下事情。

当我找到一个“未定义”的模式时,我试图将第1列放入,例如:

我的file.txt文件包含

192.168.1.1, Paul

192.168.2.2, undefined

这里是“未定义”,然后将其替换为“未定义”行中的第一列。 (192.168.2.2)

192.168.1.1, Paul

192.168.2.2, 192.168.2.2

有人能帮助我吗?

3 个答案:

答案 0 :(得分:1)

使用 awk

$ awk -F", " '$2~/undefined/{ print $1 FS $1; next}1' file
192.168.1.1, Paul

192.168.2.2, 192.168.2.2

答案 1 :(得分:0)

您可以使用sed

sed 's/\(.*\), undefined$/\1, \1/' file.txt

sed -r 's/(.*), undefined$/\1, \1/' file.txt

答案 2 :(得分:0)

此行适用于您的示例,无论分隔符是,还是,(space)

awk -F, '1+sub(/undefined$/,$1)' file