在字典文件中交换列

时间:2016-04-06 10:07:55

标签: unix sed

我需要将Finnish-Czech dictionary更改为Czech-Finnish dictionary

我试过这个命令:

sed -ne 's/\([^a-z A-Z]*\) \(.*\)$/\2 \1/ p' finnish-czech.txt

但是第一个反向引用并不起作用。我意识到后引用的结束是错误的,而不是只采取第一列它需要一切。

2 个答案:

答案 0 :(得分:1)

分隔符为<TAB>

sed -r 's/^([^\t]*)\t([^\t]*)$/\2\t\1/p'  finnish-czech.txt 

芬兰字段匹配(^([^\t]*))然后TAB\t)然后捷克提交的匹配项(([^\t]*)$

答案 1 :(得分:0)

对于awk来说,这是一项简单的工作:

awk '{ print $2 "\t" $1; }' <finnish-czech.txt

对于每一行,这将打印第二个字段,然后是选项卡,然后是第一个字段。

一种可能的复杂情况是,您的文件似乎在换行符之前有回车符 - 您可能希望使用tr -d '\r'或类似内容删除它们。