Linux에서는 grep 명령을 사용하여 일부 데이터를 추출했습니다. 아래는 내가 얻은 것입니다. 열 1에는 숫자나 문자열이 포함될 수 있고 열 2는 동일합니다.
123 ABC
456 DEF
GHI 789
숫자가 있는 열 1과 문자열이 있는 열 2 또는 그 반대의 경우 아래와 같은 출력이 필요합니다.
123 ABC
456 DEF
789 GHI
답변1
awk '{ print (/^[A-Z]/?$2 FS $1 : $0) }' infile
줄이 대문자 ASCII 문자로 시작하면 열이 바뀌고, 그렇지 않으면 줄이 변경되지 않고 인쇄됩니다.
또는 짧게 말하면:
awk '/^[A-Z]/{ $0=$2 FS $1 }1' infile
답변2
이 답변을 게시하는 것은 열이 2개만 포함된 경우에만 작동합니다.
awk '/^[A-Z]/{m=$1;$1=$2;$2=m}1' filename
output
awk '/^[A-Z]/{m=$1;$1=$2;$2=m}1' filename
123 ABC
456 DEF
789 GHI