我有一个巨大的文件,其分隔值为"~"示例
abc~poi~123~jijda~123~abc
要求将第三次出现时的值(在我们的情况下为123(替换为111。
我使用了以下命令
awk-F'~'-v OFS='~''$3=="123〃;{$3="111"}1'file.txt>Newfile.txt
这适用于手动创建的文件,但当它使用utf-8编码创建文件时,它不起作用。有人能帮上忙吗。谢谢
UTF-8应该没有问题。
# SO71048003.awk
BEGIN {
FS = OFS = "~"
out = "Newfile.txt"
}
{
if ($3 == "123")
$3 = "111"
print $0 > out
}
呼叫:
awk -f SO71048003.awk file.txt
=> Newfile.txt with content:
abc~poi~111~jijda~123~abc
您的awk
代码有一些更改:
awk -F'~' -v OFS='~' '{$3=111} 1' file
abc~poi~111~jijda~123~abc
- 我们将
111
的值分配给$3