我将分享一个例子,这样它就有意义了 -
[$] cat /boot/config-4.9.0-1-amd64 | tail
7856 CONFIG_FONT_SUPPORT=y
7857 # CONFIG_FONTS is not set
7858 CONFIG_FONT_8x8=y
7859 CONFIG_FONT_8x16=y
7860 # CONFIG_SG_SPLIT is not set
7861 CONFIG_SG_POOL=y
7862 CONFIG_ARCH_HAS_SG_CHAIN=y
7863 CONFIG_ARCH_HAS_PMEM_API=y
7864 CONFIG_ARCH_HAS_MMIO_FLUSH=y
7865 CONFIG_SBITMAP=y
输出是我想要的而不使用 cat ,这里的 cat 别名为 -
[$] alias cat
cat='cat -n'
tail -n
仅当我想在尾部包含更多行数时,使用才有效。
如何在不诉诸 cat 的情况下显示实线数字的尾部列表,有办法吗?
答案1
cat -n
对于讨厌猫的人:
使用 GNU
sed
:sed = file.txt | sed 'N;s/\n/\t/' | tail
和
awk
:awk '{ $0 = NR "\t" $0 } 1' file.txt | tail
与
grep
GNUsed
:grep -n ^ file.txt | sed 's/:/\t/' | tail
和
perl
:perl -lpe '$_ = qq($.\t$_)' | tail
或者
perl -pe 'print "$.\t"' file.txt | tail
与
bash
,paste
和seq
:paste <(seq 1 $(wc -l <file.txt)) file.txt | tail
和
pr
:pr -n -t -l 1 file.txt | tail
简单地说
sh
:let cnt=0 while read -r line; do let cnt\+\+ printf '%d\t%s\n' $cnt "$line" done <file.txt | tail
和
vim
::%s/^/\=line('.')."\t"/ | $-10,$y | new | P
答案2
你检查过了吗荷兰实用程序(大多数发行版中默认存在 coreutils 的一部分)?这是你想要的?
$ tail /boot/config-4.9.0-1-amd64 |nl
# Or even nl <(tail /boot/config-4.9.0-1-amd64)
1 CONFIG_FONT_SUPPORT=y
2 # CONFIG_FONTS is not set
3 CONFIG_FONT_8x8=y
4 CONFIG_FONT_8x16=y
5 # CONFIG_SG_SPLIT is not set
6 CONFIG_SG_POOL=y
7 CONFIG_ARCH_HAS_SG_CHAIN=y
8 CONFIG_ARCH_HAS_PMEM_API=y
9 CONFIG_ARCH_HAS_MMIO_FLUSH=y
10 CONFIG_SBITMAP=y
nl 可以提供很多有趣的编号选项,比如起始编号、编号递增步长等
要模拟猫编号,只需使用nl /boot/config-4.9.0-1-amd64 |tail