grep
유닉스 플랫폼의 파일에서 탭 (\ t)을 어떻게합니까 ?
답변
GNU grep을 사용하는 경우 Perl 스타일 regexp를 사용할 수 있습니다.
grep -P '\t' *
답변
트릭은 작은 따옴표 앞에 $ 기호를 사용하는 것 입니다. 절단 및 기타 도구 에도 적용됩니다 .
grep $'\t' sample.txt
답변
‘\ t’메타 문자를 grep과 함께 사용할 수 없었습니다. 그러나 두 가지 대체 솔루션을 찾았습니다.
- 사용
<Ctrl-V> <TAB>
(Ctrl-V를 누르고 탭 입력) - 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
