目标:对文件a.txt中含有send\ccr的行实施替换:将其中><item中插入换行符号:
在windows下使用unixtools中的awk实现方式如下:
awk -v file="send\\\\ccr" "{if($0~file){gsub(/gt;<item/,\"gt;\n\\^<item\")} print $0}" a.txt
注意点:
1、用awk变量导入时,window路径中含有的 \ 符号需要转义,又因为awk中该符号仍然需要转义,因此传入时需要4个\ 才可以;
2、windows下的awk不支持 ‘ ,所以使用 “ ,因此在action中的”就需要转义;
3、&在cmd命令行下是命令符号,在没有“ 符号保护的情况下需要cmd下转义!cmd中的转义符号是 ^ ,因此第二个&符号要用 ^&;
4、&在awk正则表达式中也是特殊符号(表示匹配到的字符串),因此也需要转义,要在^&前增加 \\ 来转义!