我对AWK中的Latin-1字符有疑问,例如ï(上面有两个点的我(239))。
当我在用AWK创建的字符串中替换ï(我将两个点替换为一个)时,它可以工作:
A="Aïda"
A=gensub("ï","i","g",A)
但是当我这样做时,
awk '
{
$0=gensub("ï","i","g",$0)
}' \
<(cat units.csv)
其中字符串“Aïda”位于文件units.csv中,ï未被替换,因此显然它不在AWK中。这是我不明白的。我也不知道怎么看AWK而不是ï。
谢谢,
Eric J.
答案 0 :(得分:3)
awk不会将更改写回原始文件(输入),您必须输出到tmp文件,在awk脚本中,您没有输出任何内容
仅awk '..' file
gensub
不是必需的,gsub
可能适合您的要求。但都工作正常
参见示例:
kent$ cat file
ï ï ï ï ï
kent$ awk '{$0=gensub("ï","x","g")}1' file # (or awk '{print gensub("ï","x","g")}' file)
x x x x x
kent$ awk 'gsub("ï","x")' file
x x x x x