다음 형식의 파일이 있습니다
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