0

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

email1:location1
email2:location2
email3:location3

我想把它改成这样:

location1:email1 
location2:email2 
location3:email3 

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

4

2 回答 2

3

简单地

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

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

也可以:

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

...代价是必须在两个地方更改调用以将其与不同的分隔符一起使用。

于 2015-02-01T19:17:23.347 回答
1

这是一个awk

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

-F::
$0=$2":"$1使用字段2之前的字段设置字段分隔符以重建行1
因为这总是正确的,它也将执行默认操作,打印行。

于 2015-02-01T19:24:27.957 回答