2011-02-16 7 views
1

쉘 문을 설명 cat의 기능과 출력은 'withoutLineNumbers.txt'파일에 기록됩니다. 그러나 '| sed 's/^.......//''의 부분은 나에게 정말로 분명하지 않습니다.다음 문이 txt 파일의 줄 번호를 제거합니다

감사합니다.

+0

좋은, 고양이를 학대 ... –

+0

당신이 설명 무슨 뜻인지 설명해주십시오 아니에요? –

답변

4

sed 정규식은 각 행에서 처음 7자를 제거하기 만합니다. 정규식 ^.......은 "줄의 시작 부분에있는 모든 7 자"라고 말합니다. sed 인수 s/^.......//은 위의 정규식을 빈 문자열로 대체합니다.

자세한 내용은 sed(1) 매뉴얼 페이지를 참조하십시오.

+0

감사합니다. 그리고 '|' 기호? –

+1

파이프가 cat의 모든 출력을 sed로 리디렉션합니다. http://www.gnu.org/software/bash/manual/bashref.html#Redirections – yan

+0

| 한 프로세스의 출력을 다른 프로세스의 입력으로 리디렉션합니다. – Flexo

0

sed가 검색을하고 대체하고 있습니다. 's'는 검색을 의미하고 다음 문자 ('/')는 분리 기호이고 검색 식은 '^ .......'이며 대체 표현식은 빈 문자열입니다 (즉, 마지막 두 개의 슬래시 사이의 모든 것).

검색은 정규 표현식입니다. '^'는 행의 시작과 일치하는 것을 의미합니다. 각 '.' 어떤 문자와도 일치하는 것을 의미합니다. 따라서 검색 표현식은 각 행의 처음 7 자와 일치합니다. 그런 다음 빈 문자열로 바뀝니다. 그래서 sed가하는 일은 각 줄의 처음 7자를 제거하는 것입니다.

더 간단한 방법

같은 생각이있을 수 달성하기 위해 : 문을 나오지

cut -b8- withLineNumbers.txt > withoutLineNumbers.txt 
0

는 처음 7 개 문자를 삭제했다. 도트 "." 모든 문자를 의미합니다. 방금 AWK 사용하여 2 열을 인쇄 할이

awk '{print $2}' withLineNumbers.txt 

을 할 수있는 더 쉬운 방법이있다. 데이터에 공백이있는 경우 필요는

정규식 사용 없습니다

awk '{$1="";print substr($0,2)}' withLineNumbers.txt 
+1

그의 데이터 세트에 공백이 있으면 어떻게 될까요? – yan

관련 문제