파일에서 슬래시 "/" 바꾸기

파일에서 슬래시 "/" 바꾸기

저는 vi편집기를 사용하고 있는데 파일에 이와 같은 데이터가 있습니다.

05/08/2017,U,01,116326001 
05/08/2017,U,01,116226001 
05/08/2017,U,01,116726323 
05/08/2017,U,01,116236001

날짜(첫 번째 열)를 바꾸고 싶습니다.

예 : 05/08/2017.04/03/2017

미리 감사드립니다.

답변1

Vi(또는 Vim) 내부:

:%s#^05/08/2017#04/03/2017#

Esc삽입 모드를 종료하려면 먼저 를 눌러야 할 수도 있습니다 .

에서와 마찬가지로 sed이 명령을 사용하여 를 바꿀 때 패턴 구분 기호로 모든 문자를 선택할 수 있습니다 s. 여기서 제가 선택한 것은 입니다 #.

. 때문에 패턴은 ^05/08/2017줄의 시작 부분에서 일치합니다 ^. 이렇게 하면 라인의 다른 곳과 실수로 일치하는 것을 방지할 수 있습니다.

일반적인 /패턴 구분 기호를 사용하면 "기울어진 이쑤시개 증후군":

:%s/^05\/08\/2017/04\/03\/2017/

%바꾸기 명령은 시작 부분에 "범위"( "첫 번째 줄부터 마지막 ​​줄까지" %와 동일 1,$) 를 사용 하기 때문에 현재 Vi 버퍼의 모든 줄에서 실행됩니다 .

답변2

간단하게sed도구:

sed -i 's~^[0-9]*/[0-9]*~04/03~' file
  • -i파일을 제자리에서 수정하는 옵션

처리된 내용 file:

04/03/2017,U,01,116326001 
04/03/2017,U,01,116226001 
04/03/2017,U,01,116726323 
04/03/2017,U,01,116236001

답변3

awk 옵션:

awk -F, '{ printf "%s","04/03/2017";for (i=2;i<=NF;i++) {printf ",%s",$i } }' filename

원하는 날짜를 인쇄한 다음 나머지 필드를 다음과 같이 구분하여 반복하여 인쇄합니다.

관련 정보