使用awk或cut更改txt文件行的顺序除以“:”

时间:2015-02-01 19:13:57

标签: awk terminal grep cut gnuwin32

我有一个名为:example.txt的文本文件,其中包含以下几行:

email1:location1
email2:location2
email3:location3

我想把它改成这样:

location1:email1 
location2:email2 
location3:email3 

最简单的方法是什么?我尝试了几个awk命令,但无法让它们工作。从我到目前为止所读到的内容来看,切割不可能。
我在Windows上使用Ubuntu或GNUwin32。

2 个答案:

答案 0 :(得分:3)

简单地

awk -F : 'BEGIN { OFS = FS } { print $2, $1 }' filename

这里唯一的技巧是输出字段分隔符OFS需要设置为字段分隔符FS-F :设置为:)所以字段是在输出中以与输入中相同的方式分隔。 $2指的是行中的第二个字段,$1指向第一个字段。

也可能:

awk -F : '{ print $2 ":" $1 }' filename

...代价是必须在两个地方更改呼叫以使用不同的分隔符。

答案 1 :(得分:1)

这是一个awk

awk -F: '$0=$2":"$1' file
location1:email1
location2:email2
location3:email3

-F:将字段分隔符设置为:
$0=$2":"$1在字段2之前使用字段1重建行 由于这总是如此,它也会执行默认操作,打印该行。