テキストファイルで段落番号を探しています。そのコマンドを使用する必要があると確信しています。cat -n
それとも、cat -b
どのように使用するのかよくわかりません。誰でもこれを拡張できますか?
答え1
cat -n file.txt
file.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
これは非常に適切なツールではありません。
私がコメントしたように、コマンドが段落を識別する方法を指定していないため、あなたの質問は正しく定義されていません。 1つの方法は、最初の行をインデントすることです。
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,