如何在 Linux 中更改两个数据字段/列的位置

如何在 Linux 中更改两个数据字段/列的位置

问题:

我有以下数据字段

zzzzz: 4
afsdf: 5
sdfsd: 3

如何更改两列的位置,以便我4: zzzzz使用awkorsed命令?如果可能,请展示多种方式,以便我可以进一步探索

答案1

以下是一些:

awk -F": " '/:/{print $2": "$1}' file
sed 's/\(.*\): *\(.*\)/\2: \1/' file
perl -pne 's/(.+?):\s*(.*)/$2: $1/' file
paste  <(cut -f 2 -d ' ' file) <(cut -f 1 -d ' ' file | sed 's/://')
while read a b; do echo "$b: $a"; done < file | sed 's/: *$//'

答案2

还有

perl -ple  '$_=join ": ",reverse split /:\s*/' your_file

perl -aF':\s*' -ple '$_=join ": ",reverse @F' your_file

相关内容