bash script2023. 8. 22. 19:24

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/603450

예전부터 계속 활용해 오던 것인데, 생각난 김에 정리해 두기로.

wc 명령으로 텍스트 파일이 총 몇줄인지(파일에 줄바꿈이 몇번 출현하는지) 확인해 볼 수 있다. -l 옵션을 사용하면 된다. 아래의 예시를 보자.

# my_file.txt가 몇 줄인지 출력
wc -l my_file.txt
10 my_file.txt

만약 파일명을 출력하지 않고 싶다면 cat 명령과 조합하면 되겠다.

# my_file.txt가 몇 줄인지 출력
cat my_file.txt | wc -l
10

 

개인적으로 가장 요긴하게 자주 쓰는 경우는 grep과 조합해서 특정 파일에서 특정 문자열을 포함한 행이 있는지 확인할 때다.

# my_file.txt 내용중에 문자열 "abc"가 존재하는지 확인
grep "abc" my_file.txt | wc -l

 

특히 if와 조합해서 특정 명령을 실행해서 얻은 출력 결과에 특정 문자열이 있는지 여부에 따라 뭔가 다른 작업을 하고 싶을 때 유용하다.

# my_file.txt의 처음 10행 내용중에 문자열 "abc"가 존재하는지 확인
if [[ `head -n 10 my_file.txt | grep "abc" | wc -l` -eq 0 ]]
  then echo "문자열 abc를 찾지 못했습니다."
  else echo "문자열 abc를 찾았습니다."
fi


위의 예시를 간단히 설명하자면 대강 이렇다. head 명령으로 my_file.txt의 맨 앞 10개 행을 출력한 결과를 grep으로 넘겨서 문자열 "abc"를 검색, 그 결과의 행 수를 wc로 파악(head -n 10 my_file.txt | grep "abc" | wc -l). 만약 해당 문자열이 존재하지 않는다면 결과는 0, 존재한다면 양수가 될 것이다. 이것을 if문의 조건에 넣어서 작업을 지정했다.

자주 쓰진 않지만, 파일의 길이가 몇 바이트인지 확인하려면 -c 옵션을 사용하면 된다. ls -l 명령 정도로 바이트 수를 쉽게 확인할 수 있긴 하지만, 스크립트 안에서 파일 크기를 변수에 할당해서 뭔가 해야 할 경우에 사용할 수 있다.

# my_file.txt가 몇 바이트인지 확인
wc -c my_file.txt
311 my_file.txt

728x90
Posted by 반달가면