awk '{ print $1 ," ", $2 ," ", $3," " }' irsc_stn_namesort >lististgah.txt
ABH1 30.6000 50.2532
AFJ 35.8553 51.7124
AFRZ 33.4252 59.0150
AKL 36.5945 58.7540
ALA 36.0829 52.8099
AMD1 35.7488 50.9608
AMIS 31.6653 49.2866
ANAR 33.1897 53.7288
ANJ 35.4679 53.9147
AZR 37.6775 45.9836
BAF 31.5902 55.5673
답변1
대신 AWK 스크립틀릿에서 사용할 수 있습니다 printf
.print
awk '{ printf "%-5s%s%8s\" $1, $2, $3 }' ...
다음 입력을 기반으로 합니다.
ABH1 30.6000 50.2532
AFJ 35.8553 51.7124
AFRZ 33.4252 59.0150
AKL 36.5945 58.7540
ALA 36.0829 52.8099
AMD1 35.7488 50.9608
AMIS 31.6653 49.2866
ANAR 33.1897 53.7288
ANJ 35.4679 53.9147
AZR 37.6775 45.9836
BAF 31.5902 55.5673
...생산물:
ABH1 30.6000 50.2532
AFJ 35.8553 51.7124
AFRZ 33.4252 59.0150
AKL 36.5945 58.7540
ALA 36.0829 52.8099
AMD1 35.7488 50.9608
AMIS 31.6653 49.2866
ANAR 33.1897 53.7288
ANJ 35.4679 53.9147
AZR 37.6775 45.9836
BAF 31.5902 55.5673
입력 데이터의 첫 번째 열은 4자를 넘지 않으며, #2와 #3 열은 다음과 같다고 가정합니다.언제나길이는 7자입니다.
그렇지 않은 경우 명령을 다음 printf "%-As%-Bs%-Cs", $1, $2, $3
과 같이 수정할 수 있습니다.
- A는 열 #1 + 1의 최대 길이입니다.
- B는 열 #2 + 1의 최대 길이입니다.
- C는 열 3의 최대 길이입니다.
고쳐 쓰다:
또는 AWK를 사용하는 대신 간단히 column
다음 명령을 사용할 수 있습니다.
echo 'AFJ 35.8553 51.7124
AFRZ 33.4252 59.0150
AKL 36.5945 58.7540
ALA 36.0829 52.8099
AMD1 35.7488 50.9608
AMIS 31.6653 49.2866' | column -t
... 생산하다
AFJ 35.8553 51.7124
AFRZ 33.4252 59.0150
AKL 36.5945 58.7540
ALA 36.0829 52.8099
AMD1 35.7488 50.9608
AMIS 31.6653 49.2866
도움이 되길 바랍니다.