我想使用 cat 命令在终端中打印带有编号段落的文本文件。
答案1
虽然某些cat
实现可以-n
选择编号线或者-b
对非空白行进行编号,我不知道有任何可以选择对段落进行编号的选项。你需要另一个工具,比如 awk 来做到这一点:
number_paragraphs() {
awk '!/[^[:blank:]]/ {print; flag=0; next}
!flag++ {n++}
{printf "%4d %s\n", n, $0}'
}
得到如下输出:
$ lorem -p2 | fmt -w70 | number_paragraphs
1 Aspernatur dicta in commodi suscipit officia. Est at voluptas aut
1 eveniet. Voluptatem placeat recusandae sed consequatur et ullam
1 expedita vitae. Quis velit modi soluta ea eos eaque cum inventore.
2 Tenetur ipsam non commodi. At aut aut quaerat. Delectus ipsam
2 dicta corrupti consequuntur. Suscipit et quibusdam nihil suscipit
2 consequuntur. Quis eum numquam qui.
或者:
number_paragraphs() {
awk '!/[^[:blank:]]/ {print; flag=0; next}
!flag++ {n++; printf "%4d %s\n", n, $0; next}
{print " ", $0}'
}
得到如下输出:
$ lorem -p2 | fmt -w70 | number_paragraphs
1 Officia a adipisci accusantium dolores velit. Et fugiat
exercitationem quibusdam. Neque nihil explicabo molestiae sapiente
voluptate.
2 Ipsa error ad nobis reprehenderit. Eius adipisci similique nemo
culpa qui quos voluptatem. Ut sint consectetur unde voluptatibus
mollitia. Recusandae natus et quasi et perferendis. Accusantium
non qui et iste fugiat sit unde dolores.
答案2
很简单,你不会。
cat(1) 仅连接作为参数给出的文件,因此无法使 cat(1) 自动在文件中间写出数字。