我有一个字典文件,格式如下:
A B [C] D其中a是一个单词(没有空格),B是另一个单词(里面没有空格),C是发音(这里有空格),D是用单词表达的定义(有空格和各种符号)。
我想把它分成4个部分,就像这样:
A@@@@B@@@@C@@@@D这样,第一个空格转换为@@@@,第一个[转换为@@@@,第一个]转换为@@@@。这将允许作为CSV (@@@@用作逗号)轻松导入到电子表格中。
这是否可以使用awk或BASH中的其他工具来实现
更新:
以下是一些示例:
一千零一夜 一千零一夜 [Yi1 qian1 ling2 yi1 ye4] /The Book of One Thousand and One Nights/
灰姑娘 灰姑娘 [Hui1 gu1 niang5] /Cinderella/a sudden rags-to-riches celebrity/
雪白 雪白 [xue3 bai2] /snow white/将转换为:
一千零一夜@@@@一千零一夜 @@@@Yi1 qian1 ling2 yi1 ye4@@@@ /The Book of One Thousand and One Nights/
灰姑娘@@@@灰姑娘 @@@@Hui1 gu1 niang5@@@@ /Cinderella/a sudden rags-to-riches celebrity/
雪白@@@@雪白 @@@@xue3 bai2@@@@ /snow white/考虑到任何东西都可能出现在第三组@@@@之后,包括更多的空格、[等,然而,在第三组@@@@之前,所有内容在格式上都是一致的。
发布于 2011-11-20 14:41:05
我认为sed会更简单:
sed -e 's/ /@@@@/' -e 's/ [/@@@@/' -e 's/] /@@@@/' infile > outfile默认情况下(例如,如果您没有在末尾指定g修饰符),替换在每行中只起作用一次。
或者,如果您想就地执行此操作:
sed -i -e 's/ /@@@@/' -e 's/ [/@@@@/' -e 's/] /@@@@/' infile(但并非所有的sed版本都支持此功能,您将丢失您的输入文件)
https://stackoverflow.com/questions/8199913
复制相似问题