我正在寻找文本文件中的段落编号,我很确定我必须使用该命令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
这不是一个非常合适的工具。
正如我在评论中所说,您的问题定义不明确,因为您没有指定命令应该如何识别段落。一种方法是缩进第一行。
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,