몇 가지 awk 스크립트가 필요한 작업이 있습니다.
파일이 있다고 가정해 보겠습니다.
A,under1
,under2
,under3
,under4
,under5
B,new1
,new2
,new3
C,sm1
,sm2
어떻게 awk를 사용하여 다음과 같이 만들 수 있나요?
A,under1
A,under2
A,under3
A,under4
A,under5
B,new1
B,new2
B,new3
C,sm1
C,sm2
즉, 열을 따라 첫 번째 필드를 확장하고 싶습니다.
답변1
일방 통행:
$ awk -F, '!$1{$1=p;}$1{p=$1;}1' OFS=, file
$1{p=$1;}
$1에 값이 있으면 변수 p에 저장합니다.
!$1
$1이 비어 있다는 의미입니다. $1이 비어 있으면 $1을 마지막 $1 값을 포함하는 p로 설정합니다.
1
각 줄을 인쇄합니다.
답변2
또 다른 해결책:
awk -F, '{$1=$1?P=$1:P;print}' OFS=,
$1이 비어 있지 않은 경우 P
$1로 설정합니다. P
그렇지 않으면 $1을 이전 값으로 설정합니다.