2
我正在尝试在awk中编写一个脚本,(其中包括)用两个连续的双引号替换所有双引号实例。但由于某种原因,我似乎无法妥善避免我的双引号。使用gsub将双引号替换为两个双引号?
因此,例如:
Mary had a "little" lamb
将成为
Mary had a ""little"" lamb
感谢好心!
我正在尝试在awk中编写一个脚本,(其中包括)用两个连续的双引号替换所有双引号实例。但由于某种原因,我似乎无法妥善避免我的双引号。使用gsub将双引号替换为两个双引号?
因此,例如:
Mary had a "little" lamb
将成为
Mary had a ""little"" lamb
感谢好心!
你可以这样说:
echo 'Mary had a "little" lamb' | awk '{ gsub(/"/, "&&") } 1'
输出:
Mary had a ""little"" lamb
的1
末调用awk的默认块{ print $0 }
。
它甚至与SED短:
echo 'Mary had a "little" lamb' | sed 's/"/&&/g'
嗯,这很有趣。作为一个更一般的AWK问题,AWK是否将整个文件缓冲到内存中,然后采取行动,还是仅以每行为基础运行?我想我想说的是,昂贵的记忆方式? (我现在还不能批准你的答案 - 我必须等5分钟。) – Waffles
@ user1116858:awk只在内存中保存一条记录,默认情况下记录是一条线。 – Thor
非常感谢! – Waffles