我有一个名为:example.txt的文本文件,其中包含以下几行:
email1:location1
email2:location2
email3:location3
我想把它改成这样:
location1:email1
location2:email2
location3:email3
最简单的方法是什么?我尝试了几个awk命令,但无法让它们工作。从我到目前为止所读到的内容来看,切割不可能。
我在Windows上使用Ubuntu或GNUwin32。
答案 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
重建行
由于这总是如此,它也会执行默认操作,打印该行。