열 값을 행으로 변환하는 awk 명령에 대해 알아보세요.

열 값을 행으로 변환하는 awk 명령에 대해 알아보세요.

이 명령은 열 값을 행으로 변환합니다. 주문하다:

awk -s1=" " '{S=S?S OFS s1 $0 s1:s1 $0 s1} END{print S}' OFS=,  Input_file

예:

1
2
3

다음으로 변환:

1, 2, 3

이 명령을 이해하도록 도와줄 사람이 있나요?

답변1

다음 구문을 알아야 합니다.

var = bool ? true_action : false_action

이것은 ... 불리운다조건식

그것과

if (bool) { var = true_action } else { var = false_action }

그래서 이거:

 S=S?S OFS s1 $0 s1:s1 $0 s1

이것과 동일:

if (S) { S=S OFS s1 $0 s1 } else { S = s1 $0 s1 }
  • if (S)할당된 경우 True S이므로 명령이 처음 호출될 때만 False입니다.
  • var1 var2 var3문자열을 s1공백, OFS현재 상태 ,S이전에 할당된 항목과 연결하기만 하면 됩니다.
  • END{print S}S마지막 줄 이후에 인쇄됩니다.

답변2

다음 sed 및 perl 명령을 사용해 보십시오.

perl -pne "s/\n/,/g" filename| sed "s/,$//g"

산출

1,2,3

관련 정보