PIPE 문자 세트 바꾸기

PIPE 문자 세트 바꾸기

3개의 파이프(|||)로 구분된 파일이 있습니다. 예를 들어 이름|||웹사이트|||날짜|||금액|||

저는 두 가지 일을 하려고 합니다.

  1. 다른 파일에서 특정 열을 추출합니다. 예를 들어 새 파일에서 분리할 숫자(파일의 4번째 열입니다)

  2. 3개의 파이프를 모두 쉼표로 바꾸면 새 파일이 다음과 같이 표시됩니다. - 이름, URL, 날짜, 금액,

내 데이터에도 쉼표 사이에 단일 파이프 문자가 있으므로 쉼표를 3개의 파이프로 바꾸고 싶습니다.

나는 시도했습니다 - awk -F '[\|]'+ '{print $4}' temp.csv > temp1.csv. 하지만 이는 데이터에 단일 파이프라인이 존재하는지 여부를 추출합니다.

미리 감사드립니다.

답변1

[|]{3}원시 데이터에서 특정 필드를 추출하려면 필드 구분자 로 사용합니다 .

$ awk -F '[|]{3}' '{ print $4 }' input.csv

GNU는 정규식을 필드 구분 기호로 사용해야 합니다 awk.

모든 것을 쉼표로 바꾸려면 다음을 수행하십시오 |||.

$ sed 's/|||/,/g' input.csv >output.csv

답변2

이렇게 하면 삼중 파이프로 구분된 데이터의 네 번째 필드를 추출하는 문제가 해결됩니다.

sed 's/|||/,/g' /path/to/input | awk -F, '{print $4}'

관련 정보