각 줄은 세미콜론을 사용하여 부분으로 구분됩니다.
각 섹션에는 다양한 형식의 날짜가 있습니다.
줄에는 숫자, 문자, 공백이 포함될 수 있습니다.
6부에서 날짜 형식을 변경하려고 합니다. 현재 상황이 그렇습니다
12 Nov 1999
하지만 나는 그 해가 필요해요. 그렇다면 다른 부분을 건드리지 않고 행의 여섯 번째 부분에서 일과 월을 어떻게 생략할 수 있습니까?
12/31/1921;12 nov 1998; 13 September 2019; 13 Sep 2018; 12 August 1998; 12 Nov 1999; 27 November 1999; 13 Dec 1999; 14 December 1999; 15 D 1999
이렇게 될 것이다
12/31/1921;12 nov 1998; 13 September 2019; 13 Sep 2018; 12 August 1998;1999; 27 November 1999; 13 Dec 1999; 14 December 1999; 15 D 1999
답변1
awk -F ';' 'BEGIN { OFS=FS } { sub(".* ", "", $6); print }' file
위의 내용은 각 행을 구분된 필드 file
집합으로 구문 분석합니다. ;
각 행의 6번째 필드를 수정하는 대체를 적용합니다. 수정에는 필드 데이터의 모든 내용을 마지막 공백 문자까지 삭제하는 작업이 포함됩니다. 6번째 필드를 수정한 후 수정된 행을 인쇄합니다.
답변2
awk
와 함께substr
기능:
awk -F';' '{ $6 = substr($6, length($6)-3) }1' OFS=';' inputfile