유닉스 쉘의 내 문서에서 hard tab characters
의 수를 계산하고 싶습니다.리눅스에서 탭 문자 수를 카운트
어떻게하면됩니까?
나는grep -c \t foo
처럼 뭔가를 시도했지만 파일 foo는에 t의 수를 제공합니다.
유닉스 쉘의 내 문서에서 hard tab characters
의 수를 계산하고 싶습니다.리눅스에서 탭 문자 수를 카운트
어떻게하면됩니까?
나는grep -c \t foo
처럼 뭔가를 시도했지만 파일 foo는에 t의 수를 제공합니다.
사용 그럴 필요는 탭을 제외한 모든 것을 버리고, 다음 계산하려면 :
grep -c $'\t' foo
다른 사람이이 https://cmdchallenge.com/#/find_tabs_in_a_file에 대답하려고합니다 : – BenB
grep 탭 문자에 perl 정규식 (-P
옵션)을 사용하십시오.
grep -o -P '\t' foo | wc -l
-P는 GNU 전용이며이 게시물은 Linux 태그가 없습니다. – jordanm
당신은 Ctrl 키 + V + TAB와 따옴표 사이에 문자 TAB 문자를 삽입 할 수 있습니다.
일반적으로 Ctrl + V 접두사를 붙이면 모든 문자를 삽입 할 수 있습니다. 과 같은 제어 문자조차 셸이 해석 할 수있는 또는 Ctrl + C을 입력하십시오.
첫 번째 생각은 sed
을 사용하여 탭이 아닌 모든 문자를 제거한 다음 wc
을 사용하여 남은 문자 수를 계산합니다.
< foo.txt sed 's/[^\t]//g' | wc -c
그러나,이 또한 라인을 기반으로하기 때문에 sed
터치하지 않습니다 줄 바꿈을 계산합니다. 따라서 tr
을 사용하여 모든 새 라인을 공백으로 변환하십시오. 따라서 sed
의 한 라인입니다.
< foo.txt tr '\n' ' ' | sed 's/[^\t]//g' | wc -c
는 쉘과 sed
의 구현에 따라, 당신은 강타와 GNU sed
, 위의 작품, 그러나, 대신 \t
의 문자 탭을 사용 할 수 있습니다.
배쉬는 특수 문자를 지정하기위한 $'...'
표기법을 사용하여 사용 탭을 레코드 구분 기호로 사용하면 탭 문자 수는 총 레코드 수에서 1을 뺀 것입니다.
ntabs=$(awk 'BEGIN {RS="\t"} END {print NR-1}' foo)
당신은 교묘 한 방법으로 AWK를 사용할 수 있습니다 :
< input-file tr -dc \\t | wc -c
그리고 한 줄에 탭 문자 수를 계산하려면 : awk BEGIN {FS = "\ t"} {print NF -1} 'foo' ('FS'는'awk'의 필드 분리 자입니다). –
탭 문자 수 또는 탭 문자가 포함 된 줄 수를 계산 하시겠습니까? 당신이 준 예제에서,'\ t'이 효과가 있었다면, 당신은 후자를 얻을 것이다. –