awk - 열에서 한 문자만 교체

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

.두 번째 열의 모든 점을 사용 방법 ,과 같은 쉼표로 바꾸 거나 두 번째 열에 적용하여 출력이 다음과 같이 보이도록 하고 싶습니다 .sed 's/\./\,/g' filesedawk

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

답변1

$ 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)각 입력 라인에 대해 .두 번째 필드의 모든 내용을 다음으로 바꿉니다.,
  • 1콘텐츠 인쇄 (입력 레코드 포함) $0에 대한 awk 관용어 입니다.

답변2

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

세 번째로 나타나는 점 바꾸기

답변3

이는 awk를 사용하여 수행됩니다.

주문하다:awk -F ";" '{gsub(/\./,",",$2);print $1";"$2";"$3}' filename

산출

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

관련 정보