Awk-특정 열에서 한 문자 만 교체

다음과 같은 파일이 있습니다.

2018.01.02;1.5;comment 1 2018.01.04;2.75;comment 2 2018.01.07;5.25;comment 4 2018.01.09;1.25;comment 7 

두 번째 열의 모든 점 .을 iv id = “에서처럼 쉼표 ,로 바꾸고 싶습니다. 1a70be4712 “>

sed 또는 바람직하게는 awk를 사용하여 두 번째 열에 만 적용 할 수 있으므로 출력은 다음과 같습니다.

2018.01.02;1,5;comment 1 2018.01.04;2,75;comment 2 2018.01.07;5,25;comment 4 2018.01.09;1,25;comment 7 

답변

$ awk "BEGIN{FS=OFS=";"} {gsub(/\./, ",", $2)} 1" ip.txt 2018.01.02;1,5;comment 1 2018.01.04;2,75;comment 2 2018.01.07;5,25;comment 4 2018.01.09;1,25;comment 7 
  • BEGIN{}이 코드 블록은 입력 행을 처리하기 전에 실행됩니다.
  • FS=OFS=";" 각 입력 줄에 대해 입력 및 출력 필드 구분 기호를 ;
  • gsub(/\./, ",", $2)로 설정하고 모든 iv id ,가있는 두 번째 필드의 = “ca58471716″>
  • 1는 인쇄 할 awk 관용구입니다. 계속 $0 항목 (입력 레코드 포함)
  • 답변

    sed "s/\./,/3" file 

    세 번째 발생 점 바꾸기

    답변

    완료 awk를 사용하는 아래 방법

    Command : awk -F ";" "{gsub(/\./,",",$2);print $1";"$2";"$3}" filename

    output

    2018.01.02;1,5;comment 1 2018.01.04;2,75;comment 2 2018.01.07;5,25;comment 4 2018.01.09;1,25;comment 7 

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다