[unix] 유닉스에서 탭을 잡다

grep유닉스 플랫폼의 파일에서 탭 (\ t)을 어떻게합니까 ?



답변

GNU grep을 사용하는 경우 Perl 스타일 regexp를 사용할 수 있습니다.

grep -P '\t' *


답변

트릭은 작은 따옴표 앞에 $ 기호를 사용하는 것 입니다. 절단 및 기타 도구 에도 적용됩니다 .

grep $'\t' sample.txt


답변

‘\ t’메타 문자를 grep과 함께 사용할 수 없었습니다. 그러나 두 가지 대체 솔루션을 찾았습니다.

  1. 사용 <Ctrl-V> <TAB>(Ctrl-V를 누르고 탭 입력)
  2. awk 사용하기 : foo | awk '/\t/'

답변

에서 이 답변 우분투 질문에 :

grep에게 Perl에 의해 정의 된 정규식을 사용하도록 지시하십시오 (Perl에는
\t탭이 있음).

grep -P "\t" <file name>

리터럴 탭 문자를 사용하십시오.

grep "^V<tab>" <filename>

printf탭 문자를 인쇄하는 데 사용하십시오 .

grep "$(printf '\t')" <filename>

답변

한 가지 방법은 (Bash와 함께)

grep -P '\t'

-P Perl 정규 표현식을 켜면 \ t가 작동합니다.

사용자 풀기 에서 알 수 있듯이 GNU grep에만 해당 될 수 있습니다. 대안은 쉘, 편집기 또는 터미널에서 허용하는 경우 문자 그대로 탭을 삽입하는 것입니다.


답변

표현식 안에 탭을 문자 그대로 삽입하는 또 다른 방법은 $'\t'Bash에서 덜 알려진 인용문을 사용하는 것입니다 .

grep $'foo\tbar'        # matches eg. 'foo<tab>bar'

(고정 문자열과 일치하는 경우 ‘-F’모드와 함께 사용할 수 있습니다.)

때로는 변수를 사용하면 표기법을 좀 더 읽기 쉽고 관리하기 쉽게 만들 수 있습니다.

tab=$'\t'               # `tab=$(printf '\t')` in POSIX
id='[[:digit:]]\+'
name='[[:alpha:]_][[:alnum:]_-]*'
grep "$name$tab$id"     # matches eg. `bob2<tab>323`


답변

이것은 정확히 당신이 찾고있는 것이 아니지만 귀하의 경우에는 효과가있을 수 있습니다

grep '[[:blank:]]'

에 해당

grep -P '[ \t]'

스페이스와 탭을 찾을 수 있습니다.

§ 캐릭터 클래스

참고로 내 광고는 man grep없지만 여전히 작동합니다.

$ 남자 grep | 그렙 빈 | 화장실
      0 0 0