我有一个名为:example.txt 的文本文件,其中包含以下几行:
email1:location1
email2:location2
email3:location3
我想把它改成这样:
location1:email1
location2:email2
location3:email3
最简单的方法是什么?我尝试了几个 awk 命令,但无法让它们工作。从我目前读到的内容来看,cut 是不可能的。
我在 Windows 上使用 Ubuntu 或 GNUwin32。
简单地
awk -F : 'BEGIN { OFS = FS } { print $2, $1 }' filename
这里唯一的技巧是输出字段分隔符OFS
需要设置为字段分隔符FS
(-F :
设置为:
),因此字段在输出中的分隔方式与输入中的方式相同。$2
指行中的第二个字段,指第一个字段$1
。
也可以:
awk -F : '{ print $2 ":" $1 }' filename
...代价是必须在两个地方更改调用以将其与不同的分隔符一起使用。
这是一个awk
awk -F: '$0=$2":"$1' file
location1:email1
location2:email2
location3:email3
-F:
:
$0=$2":"$1
使用字段2
之前的字段设置字段分隔符以重建行1
因为这总是正确的,它也将执行默认操作,打印行。