删除逗号并更改单词顺序



我有一个文本文件,其中每行具有此格式(逗号之前和之后的单词数可能会有所不同,但它至少是一个之前和之后的一个(:

some words,a few other words

,我希望这样的内容显示在终端上:

a few other words some words

我该怎么做?我唯一能想到的是使用tr命令用空间替换逗号,但是我对如何更改单词的顺序不知道。任何帮助,将不胜感激。

如果您不介意使用尴尬,则可以使用-F选项:

$>cat f
some words,a few other words
foo,bar
$>awk -F',' '{print $2,$1}' f
a few other words some words
bar foo

另一个选择是使用:

$>sed 's/(.*),(.*)/2 1/g' f
a few other words some words
bar foo

最后,有一段时间循环:

$>while IFS=, read part1 part2; do echo "$part2" "$part1";done <f
a few other words some words
bar foo

您必须确保每行只有1个逗号……

cat yourfile.txt|sed -E 's/(.*),(.*)/2 1/'

这就是Awk的意思(将场分隔符定义为逗号时(:

$ echo "some words,a few other words" | awk -F, '{ print $2,$1 }'
a few other words some words

编辑:
只是注意到@fredtantini具有相同的(接受(解决方案。我将其留在这里,因为它以更简洁的方式显示解决方案(即,它不使用外部文件(。

最新更新