일부 텍스트 파일을 명령 줄로 구문 분석하려고합니다. 이 중 일부는 잘못된 형식의 이메일에서 깨진 단어를 다시 첨부하는 것과 관련이 있습니다. 예 :Mac OS X의 .sh 파일에서 sed 사용
9,650 330,765.0 16.38% NYSE (000) 1,707,915 272,099.0 18.95% Commodit=
ies Close Change % Change Crude Oil (Feb) 19.62 0.32 1.66% Heating Oil (Ja=
나는 '상품'을 들고 싶다. 이 일을 끝내기 위해이 workaround을 사용하고 있습니다.
Mac OS X 10.7 및 GNU sed 버전 4.2.1을 사용하고 있습니다. 커맨드 라인에 입력하면
sed ':a;N;$!ba;s/=\r\n//g' ./filename
sed가 올바르게 작동합니다. 그러나이 bash 스크립트를 실행하면
#!/bin/bash
sed ':a;N;$!ba;s/=\r\n//g' filename
sed가 작동하지 않습니다. 그러나 동일한 스크립트는 우분투의 명령 줄에서 작동합니다
9,650 330,765.0 16.38% NYSE (000) 1,707,915 272,099.0 18.95% Commodities Close Change % Change Crude Oil (Feb) 19.62 0.32 1.66% Heating Oil (Jan)
을 내 맥,
#!/bin/bash
sed 's/=//g' filename
이 성공적으로 모든 등호를 제거하는 간단한 스크립트에. 역 슬래시 문자를 여러 가지 조합으로 시도했지만 성공하지 못했습니다. 맥 터미널이 좋아하지 않는 것에 대한 어떤 힌트?
예제 파일에는 각 줄의 마지막 등호 뒤에 공백이 하나 있습니다. 명령이 실패하는 이유가 될 수 있습니까? 또한, 아마 OSX에서 작동하도록'#!/bin/sh '으로 바꾸는 것이 좋습니다. 행운을 빕니다. – Steve
@steve 귀하의 제안에 감사드립니다. 불행하게도/bin/bash를/bin/sh로 변경하는 것은 효과가 없었습니다. :(공백을 제거하기 위해 예제 파일을 업데이트했습니다. 실제 파일에 없습니다. – RussH