使用 awk 仅替换特定列中的特定模式

replacing a particular pattern only in a specific column using awk

我有一个文件

$ cat file1
1 2 lallu.3
3 4 lallu.5
4 5 lallu.6

我的输出文件应该是

1 2 3
3 4 5
4 5 6

我想换掉lallu。在第 3 列到“”

我在 awk 中尝试了以下方法

awk '{print  " "  " "  } | awk ' ~ /lallu\./ {  = ""}1 '

这似乎不起作用。你能帮忙吗

你可以使用 awk 的 sub 函数。

awk '{sub(/lallu\./, "", )}1' file

如果要删除同一列上的多个 lallu. 子字符串,请使用 gsub 而不是 sub 。(即,将 sub 替换为 gsub) 在上面。