고급 Bash 스 크 립 트 프로 그래 밍 가이드 (26): 텍스트 처리 명령 (2)

4945 단어 shell
고급 Bash 스 크 립 트 프로 그래 밍 가이드 (26): 텍스트 처리 명령 (2)
견지했어
텍스트 와 텍스트 파일 을 처리 하 는 명령
look
look 명령 은 grep 명령 과 비슷 하지만 이 명령 은 '사전 조회' 만 할 수 있 습 니 다. 즉, 검색 한 파일 은 정렬 된 단어 목록 이 어야 합 니 다. 기본 값 으로 어떤 파일 을 검색 할 지 지정 하지 않 으 면 look 명령 은 기본 검색/usr/share/dict/words 입 니 다. 물론 다른 디 렉 터 리 에 있 는 파일 을 지정 하여 검색 할 수 있 습 니 다.
하나의 인 스 턴 스: 목록 에 있 는 단어의 정확성 을 검사 합 니 다.
#!/bin/bash
#                      .

name="./file"  #            .

echo

# Stephane Chazelas            :

while read word && [[ $word != end ]]
do if look "$word" > /dev/null
   then echo "\"$word\" is valid."
   else echo "\"$word\" is invalid."
   fi
done <"$name"

exit 0
# will never be called
while [ "$word" != end ]  #            .
do
  read word      #        ,             .
  look $word > /dev/null  #               .
  lookup=$?      # 'look'       .

  if [ "$lookup" -eq 0 ]
  then
    echo "\"$word\" is valid."
  else
    echo "\"$word\" is invalid."
  fi

done <"$name"    #  stdin    $file,   "reads"   $file.

echo

exit 0
결과:
root@ubuntu:~/resource/shell-study/0620-2013# cat file
this
good
example
then
echo
23
45
root@ubuntu:~/resource/shell-study/0620-2013# ./test7.sh 

"this" is valid.
"good" is valid.
"example" is valid.
"then" is valid.
"echo" is valid.
"23" is invalid.
"45" is invalid.
root@ubuntu:~/resource/shell-study/0620-2013# 
상기 사례 의 두 번 째 방법 은 아직도 해결 되 지 않 은 문제 가 존재 한다.
sed, awk
이 두 명령 은 모두 독립 된 스 크 립 트 언어 로 텍스트 파일 과 명령 출력 을 분석 하기에 적합 합 니 다. 단독으로 사용 할 수도 있 고 파이프 와 셸 스 크 립 트 를 결합 해서 사용 할 수도 있 습 니 다.
sed
대화 식 이 아 닌 "스 트림 편집기"는 일괄 처리 모드 에서 여러 개의 ex 명령 을 사용 할 수 있 습 니 다. 셸 스 크 립 트 에서 매우 유용 하 다 는 것 을 알 게 될 것 입 니 다.
awk
프로 그래 밍 가능 한 파일 추출 기와 파일 포맷 도 구 는 구조 화 된 텍스트 파일 에서 특정 도 메 인 (특정 열) 을 처리 하거나 추출 하 는 것 이 좋 습 니 다. 문법 은 C 언어 와 유사 합 니 다.
당신 은 항상 위의 두 명령 과 접촉 할 것 입 니 다. 그들 은 그렇게 잘 지내 지 못 합 니 다. O (∩ ∩) O ~ 나 는 O (∩ ∩) O 라 고 생각 합 니 다.
wc
wc 는 파일 이나 I/O 흐름 의 '단어 수' 를 통계 할 수 있 습 니 다.
root@ubuntu:~/resource/shell-study/0620-2013# cat file
this
good
example
then
echo
23
45
root@ubuntu:~/resource/shell-study/0620-2013# wc file
 7  7 34 file
root@ubuntu:~/resource/shell-study/0620-2013# 
첫 번 째 7 은 7 lines, 두 번 째 7 은 7 words, 세 번 째 34 코드 34 를 대표 합 니 다. characters, 손가락 을 벗 기 고 셀 수 있 습 니 다. O (∩ ∩) O ~, 마지막 으로 파일 이름 입 니 다.
wc - w 단어 수량 통계.
root@ubuntu:~/resource/shell-study/0620-2013# wc -w file
7 file
root@ubuntu:~/resource/shell-study/0620-2013# 

wc - l 통계 줄 수량.
root@ubuntu:~/resource/shell-study/0620-2013# wc -l file
7 file
root@ubuntu:~/resource/shell-study/0620-2013# 

wc - c 바이트 수량 통계.
root@ubuntu:~/resource/shell-study/0620-2013# wc -c file
34 file
root@ubuntu:~/resource/shell-study/0620-2013# 

wc - m 문자 수 를 통계 합 니 다.
root@ubuntu:~/resource/shell-study/0620-2013# wc -m file
34 file
root@ubuntu:~/resource/shell-study/0620-2013# 

wc - L 파일 의 가장 긴 줄 길 이 를 보 여 줍 니 다.
root@ubuntu:~/resource/shell-study/0620-2013# wc -L file
7 file
root@ubuntu:~/resource/shell-study/0620-2013# 
하나의 인 스 턴 스: 현재 작업 디 렉 터 리 에 몇 개의 스 크 립 트 파일 이 있 는 지 wc 명령 으로 통계 합 니 다.
root@ubuntu:~/resource/shell-study/0620-2013# ls
file   file2    test1.sh  test3.sh  test5.sh  test7.sh
file1  sys.log  test2.sh  test4.sh  test6.sh
root@ubuntu:~/resource/shell-study/0620-2013# ls *.sh | wc -l
7
root@ubuntu:~/resource/shell-study/0620-2013# 
이어서 실례 를 보십시오. wc 명령 은 t 로 시작 하 는 모든 파일 의 크기 를 통계 합 니 다.
root@ubuntu:~/resource/shell-study/0620-2013# ls
file   file2    test1.sh  test3.sh  test5.sh  test7.sh
file1  sys.log  test2.sh  test4.sh  test6.sh
root@ubuntu:~/resource/shell-study/0620-2013# wc t* | grep total |awk '{print $3}'
5295
root@ubuntu:~/resource/shell-study/0620-2013# wc t*
  12   19  148 test1.sh
  20   54  511 test2.sh
  81  189 2535 test3.sh
  15   41  391 test4.sh
  17   40  335 test5.sh
  24   58  521 test6.sh
  36   93  854 test7.sh
 205  494 5295 total
root@ubuntu:~/resource/shell-study/0620-2013#
지정 한 파일 에 '어떤 내용' 이 포 함 된 줄 이 얼마나 되 는 지 wc 명령 을 사용 합 니 다.
root@ubuntu:~/resource/shell-study/0620-2013# cat file
this my dog
good luch 
this is mine
hello
happy
this ok
that this
root@ubuntu:~/resource/shell-study/0620-2013# grep "this" file | wc -l
4
root@ubuntu:~/resource/shell-study/0620-2013# 
여기까지, 오늘 좀 쉬 자, O (∩ ∩) O ~
먼저 여기까지, O (∩ ∩) O ~
내 칼럼 주소:http://blog.csdn.net/column/details/shell-daily-study.html
계속...

좋은 웹페이지 즐겨찾기