awk를 사용하여 조건부 필드 수정

awk를 사용하여 조건부 필드 수정

입력하다

New,9,1
Old,11,0

산출

New,09,1
Old,11,0

,제출된 숫자 2에 한자리인 경우 첫 번째 숫자 뒤에 추가하고 싶기 때문에 0출력에 표시된 숫자 앞에 추가하고 싶습니다.

이를 달성하기 위해 사용할 수 있었지만 구분 기호로 사용하는 기능은 awk상실되었습니다 .,

다음 명령을 사용하십시오

awk -F ',' '{if(length($2)==1)$2="0"$2;print $0}' inputfile

답변1

awk -F ',' 'BEGIN { OFS=","};{if(length($2)==1)$2="0"$2;print $0}'

답변2

이를 사용하면 GNU sed다음과 같습니다.

   sed -Ee    's/,([0-9]),/,0\1,/'   input 

답변3

동일한 효과를 얻기 위해 다음 awk 방법을 사용합니다.

_linux_example ~]#awk -F "," '{if(length($2)<=1)print $1",0"$2","$3;else print $0}' file.txt

산출:

 awk -F "," '{if(length($2)<=1)print $1",0"$2","$3;else print $0}' filename

New,09,1
Old,11,0

관련 정보