Unix에서 파일 형식을 지정할 때 데이터 정리를 방지하는 방법

Unix에서 파일 형식을 지정할 때 데이터 정리를 방지하는 방법

다음 형식의 파일이 있습니다

A           |b -c          |   c      |  d  -c | | |

위 파일을 아래와 같이 형식화해야 합니다.

A|b -c|c|d  -c|||

데이터에서 공백을 제거하고 싶지는 않습니다. 데이터 종결자 앞에 있는 추가 공간인 (파이프)을 제거하고 싶습니다.

답변1

sed한 가지 옵션은 "하나 이상의 공간을 파이프로 바꾼 다음 파이프로 교체"를 사용하는 것입니다 . 그리고 해당 공간과 파이프가 발생할 때마다 이 작업을 수행합니다.

sed  's/  *|/|/g' < input > output

공백도 제거하세요.뒤쪽에관로:

sed  's/  *|/|/g; s/|  */|/g' < input > output

답변2

Awk를 사용하여 입력 필드 구분 기호를 공백으로 둘러싸인 파이프로 설정하고 출력 필드 구분 기호를 파이프로 설정할 수 있습니다.

awk 'BEGIN {FS="[ \t]*\\|[ \t]*"; OFS="|"} {$1=$1} 1' file

관련 정보