다음과 같은 긴 숫자와 값 목록이 있습니다.
100 value1 value2
이 목록에는 약 150개의 행이 있으며 다음과 같이 각 숫자를 값 끝으로 이동하려고 합니다.
value1 value2 100
나는 이 명령을 사용하여 작업을 수행하려고 합니다.
awk -F: '{print $2 $3 $1}' ~path/to/file.txt
하지만 파일의 모든 내용을 인쇄합니다.
100 value1 value2
101 value3 value4
102 value5 value6
도와주세요!
미리 감사드립니다!
답변1
사실, 당신은 가깝습니다. :)
다음을 사용해 보세요:
awk '{print $2,$3,$1}' filename > output_file
확인해보세요:
cat output_file
답변2
사용 awk
:
awk '{ num = $1;$1=""; sub(/^ /,""); print $0,num; }' ~path/to/file.txt
이렇게 하면 열 수에 제한이 없습니다. 설명하다:
- 첫 번째 열을 변수 "num"에 저장하고 빈 값(예: "")으로 설정합니다.
- 처음 두 열 사이의 추가 공백 제거(sub 사용)
- 인쇄
- $0 - 전체 행
- "num" 원래 첫 번째 열
다음을 사용할 수도 있습니다 sed
.
sed 's/\([0-9]\+\) \(.*\)/\2 \1/' ~path/to/file.txt