Cat 명령 관련 문제 [닫기]

Cat 명령 관련 문제 [닫기]

텍스트 파일에서 단락 번호를 찾고 있습니다. 해당 명령을 사용해야 한다고 확신합니다. cat -n아니면 cat -b어떻게 사용하는지 잘 모르겠습니다. 누구든지 이에 대해 확장할 수 있습니까?

답변1

cat -n file.txtfile.txt의 내용이 줄 번호와 함께 표시됩니다.
파일에 줄 번호를 포함하려면 I/O 리디렉션을 사용할 수 있습니다
cat -n file.txt > file1.txt. 예를 들어
단락에 번호를 매기는 옵션은 없습니다.

답변2

Grep은 파일에 빈 줄이 몇 개 있는지 알려줄 수 있습니다. 이는 일반적으로 단락 수보다 1이 적습니다. 텍스트에 추가 빈 줄이 없는 한.

grep -c '^$' file.txt | wc -l

또한 비어 있지 않은 줄이 몇 개 있는지도 알려줄 수 있습니다. 단락이 모두 줄 바꿈 없이 연속적으로 작성되었다면 이것이 효과가 있을 것이라고 생각합니다.

grep -cv '^$' a | wc -l

답변3

다른 답변에서 알 수 있듯이 cat이것은 매우 적합한 도구가 아닙니다.

내가 의견에서 말했듯이 명령이 단락을 식별하는 방법을 지정하지 않았기 때문에 귀하의 질문이 제대로 정의되지 않았습니다. 한 가지 방법은 첫 번째 줄을 들여쓰는 것입니다. nl -bp"^ "다음 형식의 입력을 처리하는 데 적합한 명령입니다.

$ cat text1
Some Verse
 The quick brown fox
jumps over the lazy dog.
 The Owl and the Pussy-cat went to sea
In a beautiful pea green boat,

$ nl -bp"^ " text1
       Some Verse
     1   The quick brown fox
       jumps over the lazy dog.
     2   The Owl and the Pussy-cat went to sea
       In a beautiful pea green boat,

또 다른 방법은 빈 줄을 구분 기호로 사용하는 것입니다. awk이런 일을 처리하는 데 아주 능숙합니다.

$ cat num_pp
#!/bin/sh
awk 'BEGIN    {start=1}
     /^$/     {start=1}
    {
        if ($0 != ""  &&  start) {
                print ++ppnum, $0
                start=0
        } else print
    }' "$@"

$ cat text2
Some Verse
 The quick brown fox
jumps over the lazy dog.

The Owl and the Pussy-cat went to sea
 In a beautiful pea green boat,

$ ./num_pp text2
1 Some Verse
 The quick brown fox
jumps over the lazy dog.

2 The Owl and the Pussy-cat went to sea
 In a beautiful pea green boat,

관련 정보