Linux에서 두 데이터 필드/열의 위치를 ​​변경하는 방법

Linux에서 두 데이터 필드/열의 위치를 ​​변경하는 방법

질문:

다음과 같은 데이터 필드가 있습니다

zzzzz: 4
afsdf: 5
sdfsd: 3

or 명령을 4: zzzzz사용할 수 있도록 두 열의 위치를 ​​어떻게 변경합니까 ? 가능하다면 더 자세히 알아볼 수 있도록 여러 가지 방법을 보여주세요.awksed

답변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

관련 정보