我正在尝试根据字符串“//”。
分隔文件的RECORDS我尝试的是:
awk -v RS="//" '{ print "******************************************\n\n"$0 }' myFile.gb
“******”等只是一条向我显示记录被拆分的痕迹。
但是,该文件还包含/
(单独),我的跟踪******
正在那里打印,这意味着awk正在将这些也解释为我的记录分隔符。
如何让awk只分割//
????
更新:我在Unix上运行(OS X附带的那个)
我找到了一个临时解决方案:
sed s/"\/\/"/"*"/g | awk -v RS="*" ...
但必须有更好的方法,特别是对于我正在使用的大量文件。
答案 0 :(得分:1)
在Mac上,awk version 20070501
不支持多字符RS。这是一个使用这样的awk的例证,以及与gawk的比较(在同一台机器上):
$ /usr/bin/awk --version
awk version 20070501
$ /usr/bin/awk -v RS="//" '{print NR ":" $0}' <<< x//y//z
1:x
2:
3:y
4:
5:z
$ gawk -v RS="//" '{print NR ":" $0}' <<< x//y//z
1:x
2:y
3:z
如果找不到合适的awk
,请选择比*
更好的字符。例如,如果标签是可接受的,并且您的shell支持$'...'
,那么您可以使用sed
的这个*:
sed $'s,//,\t,g'