2014-06-30 3 views
1

결합 SED는

나는 현재

sed -i 's/\(.\{1\}\)//'          

각 줄에 여분의 공백을 제거 각 행의 첫 번째 문자를 제거하는 두 가지 명령을 수행하고 하나의 명령에 나오지도 명령을 결합 명령

sed -i 's/ //g'             

구문 분석 할 237GB 파일에는 3.4 줄이 있으며, dont는 그것을 두 번 통과해야합니다.

+0

나오지 -i '(. \ {1 \} \)의/\ //;의///g' 알아 낸 당신은 단지 필요 세미콜론을 사용하십시오. 널 막히게해서 미안해. – BulletB

+1

첫 명령은'sed -i 's /////와 어떻게 다른가요? – Beta

+0

솔직히 모르겠지만, 이전 stackoverflow 질문에 대한 명령을 발견하고 그것을 작동 그래서 나는 그것을 질문하지 않았다. – BulletB

답변

2

아래의 sed 명령은 둘을 결합합니다. 구분 기호로 ;을 사용하여 두 sed 작업을 결합하십시오.

sed -i 's/\(.\{1\}\)//;s/ //g' file 
1

당신은 awk

awk '{sub(/./,"");$1=$1}1' file 

sub(/./,"")
$1=$1 모든 이중 공간을 제거하는 첫 번째 문자를 제거 시도 할 수 있습니다.

+0

는 본질적으로 다른 것보다 편도가 큽니까? 나는 파일의 크기 때문에 속도를 낼 것이다. – BulletB

+0

또한 awk에서 파일을 편집 할 수 있습니까? 파일을 복사 할 I/O 시간이 길기 때문에 기울이지 않으면 너무 많이 도와주지 않습니다. – BulletB

+0

'awk'는 제자리에서 편집을하지 않습니다. 당신은'awk '코드'file> tmp & mv tmp file'을 할 수 있습니다. 속도를 위해서는 테스트해야합니다. – Jotne

2

또 다른 방법 :

sed -i -e 's/\(.\{1\}\)//' -e 's/ //g' file 
명령 모양을
관련 문제