Bash 파일의 각 줄에 대해

Bash Each Line File



Bash의 For 루프는 여러 작업을 수행하기 위해 다양한 변형과 ​​함께 사용할 수 있습니다. 그러한 변형 중 하나는 파일의 모든 행을 읽는 역할을 하는 파일의 각 행에 대한 것입니다. 이 기사에서는 Bash에서 파일의 각 행에 대해 사용하는 방법에 대해 설명합니다.

참고: 아래 표시된 방법은 Ubuntu 20.04에서 시연되었습니다. 그러나 다른 모든 Linux 배포판에서도 잘 작동합니다.







Bash에서 파일의 각 줄에 사용하는 방법:

이 방법에서는 파일에서 각 줄을 읽은 다음 터미널에 표시하거나 이 줄을 다른 파일에 저장할 수 있는 예를 보여줍니다. 이 두 가지 방법을 모두 살펴보겠습니다.



방법 # 1: 터미널에 읽기 라인을 표시하기 위해:

파일의 각 줄에 대해 를 사용하여 터미널에 파일의 줄을 표시하려면 다음 단계를 수행해야 합니다.



1단계: 더미 텍스트 파일 만들기:

먼저 데모를 위해 임의의 데이터로 텍스트 파일을 만들어야 합니다. 이 텍스트 파일은 어디에서나 생성할 수 있지만 홈 폴더에 생성하는 것이 좋습니다. 그렇게 하려면 아래 표시된 이미지에서 강조 표시된 파일 관리자 아이콘을 클릭하십시오.





  • 더미 텍스트 파일 만들기

    이제 홈 폴더의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 나타나는 메뉴에서 새 문서 옵션을 선택합니다. 그런 다음 빈 문서 옵션을 선택합니다. 홈 폴더에 빈 문서가 생성되면 원하는 이름과 .txt 확장자를 차례로 입력합니다. 이 예에서는 ForEachLine.txt로 이름을 지정했습니다.

  • 더미 텍스트 파일 생성2
    이 텍스트 파일을 두 번 클릭하여 연 다음 다음 이미지와 같이 임의의 텍스트를 입력합니다. 이 작업을 수행한 후 이 파일을 저장하고 닫습니다.



  • 더미 텍스트 파일 생성3

    2단계: Bash 스크립트 만들기:

    이제 홈 폴더에 텍스트 파일을 만든 것과 같은 방식으로 Bash 파일을 만듭니다. 단, 이번에는 이름 뒤에 .txt 확장자 대신 .sh 확장자를 입력해야 합니다. Bash 파일의 이름을 ForEachLine.sh로 지정했지만 원하는 이름을 지정할 수 있습니다.
    배시 스크립트 만들기

    이 파일을 두 번 클릭하여 연 다음 새로 만든 Bash 파일에 아래 이미지에 표시된 스크립트를 입력합니다. 여기서 첫 번째 줄은 다음 스크립트가 Bash 스크립트임을 나타냅니다. File이라는 변수를 생성하고 텍스트 파일의 이름을 ForEachLine.txt와 같은 값으로 지정했습니다. 그런 다음 Lines라는 변수를 만들고 $(cat $File)로 이퀄라이징했습니다. 여기서 cat 명령은 텍스트 파일의 내용을 읽고 $ 기호가 앞에 올 때 이 명령으로 읽은 내용은 Lines 변수에 저장됩니다. 이런 식으로 ForEachLine.txt라는 파일의 모든 줄이 Lines 변수에 저장됩니다. 그런 다음 반복자 Line이 있는 For 루프를 적용했습니다. 이 반복자는 위에서 만든 Lines 변수에서 작동하며 모든 줄을 하나씩 반복합니다. 그런 다음 do-done 블록에서 echo 명령을 사용하여 터미널에 이 모든 라인을 표시했습니다.
    배시 스크립트2 만들기

    3단계: Bash 스크립트 실행:

    이제 Ubuntu 20.04에서 터미널을 실행하고 다음 명령을 실행하여 위에서 만든 Bash 스크립트를 실행합니다.
    bash ForEachLine.sh
    Bash 스크립트 실행

    이 명령이 bash 스크립트를 실행하게 하면 다음 이미지와 같이 터미널에서 텍스트 파일의 모든 행을 볼 수 있습니다.
    Bash 스크립트 실행

    방법 # 2: 모든 읽기 행을 다른 파일에 저장하는 경우:

    이 방법에서는 위의 방법으로 생성된 Bash 스크립트를 약간 수정하여 터미널에 표시하지 않고 모든 읽은 줄을 새 텍스트 파일에 저장합니다. 이렇게 하려면 아래에 언급된 단계를 수행하십시오.

    1단계: 위에서 생성한 Bash 스크립트 수정 및 실행:

    위의 방법으로 생성한 Bash 스크립트를 열고 다음 이미지와 같이 수정합니다. do-done 블록 내에서 echo 명령 뒤에 새 파일 이름이 오는 >> 기호를 추가하기만 하면 됩니다. 이 수정은 모든 읽기 라인을 터미널에 표시하는 대신 새 텍스트 파일에 저장합니다. 이제 bash 명령 다음에 Bash 파일 이름을 사용하여 터미널을 통해 Bash 스크립트를 다시 실행하십시오. 이번에는 Bash 스크립트가 실행될 때 이 경우 이름이 NewFile.txt인 새 텍스트 파일을 생성합니다.
    위에서 생성한 Bash 스크립트 수정 및 실행1

    2단계: 새로 생성된 텍스트 파일에 액세스:

    모든 읽기 줄이 새 텍스트 파일에 저장되었는지 확인하려면 터미널에서 다음 명령을 실행하여 해당 파일의 내용을 보기만 하면 됩니다.
    고양이 NewFile.txt
    새로 생성된 텍스트 파일 액세스
    아래 이미지에 표시된 출력은 모든 읽기 행이 새 텍스트 파일에 복사되었음을 확인할 수 있습니다.
    새로 생성된 텍스트 파일 액세스2

    결론:

    이런 식으로 파일의 각 줄을 사용하여 파일의 모든 줄을 읽은 다음 이 줄로 조작할 수 있습니다. 이 기사에서 두 가지 기본 시나리오에 대해 이야기했지만 더 복잡한 문제에 이 루프를 사용할 수도 있습니다.