![Linux에서 두 데이터 필드/열의 위치를 변경하는 방법](https://linux55.com/image/4229/Linux%EC%97%90%EC%84%9C%20%EB%91%90%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%95%84%EB%93%9C%2F%EC%97%B4%EC%9D%98%20%EC%9C%84%EC%B9%98%EB%A5%BC%20%E2%80%8B%E2%80%8B%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
질문:
다음과 같은 데이터 필드가 있습니다
zzzzz: 4
afsdf: 5
sdfsd: 3
or 명령을 4: zzzzz
사용할 수 있도록 두 열의 위치를 어떻게 변경합니까 ? 가능하다면 더 자세히 알아볼 수 있도록 여러 가지 방법을 보여주세요.awk
sed
답변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