- 论坛徽章:
- 3
|
本帖最后由 jeffreyst 于 2014-04-24 09:53 编辑
在sed1line,其中有这么个语句:
cat 1 | sed -e ':a; $q; N; 11,$D; ba'
实现的是打印文件1的最后10行,有点不太明白,那位帮忙解释下,多谢了
我的问题好像出现在对11,$的理解上,有点想不明白
语句的其他部分倒是差不多能理解:
:a和ba实现的循环跳转
$q是本语句结束的位置,即到最后一行就退出
N是将下一行读入到模式空间
D是删除模式空间的第一行
这个语句的思路应该是:
将文本读入到模式空间,然后使用D命令从模式空间第一行删除,直到模式空间中剩余10条记录为止,
而这十条记录就是文本的最后10行,
但是我怎么想也不能把“这个判断模式空间中剩余10条记录”和语句中的“11,$”对应起来...
不知道是那里没有理解好,大神们帮忙解释下,多谢了
cat 1
1 wUpJ]FJNXFvEKKjawwmf
2 om[gRnfCwnvldECbxmiY
3 LZPPWevShruDDqbAT[JY
4 MRaZQzMA]oUILrSYz[vN
5 jblLcjWOBwHATnjnDAWm
6 YcMNSabyWfMsxkWaHrYb
7 ZhOHMnnDINNtNdFZnlxl
8 PZOrNVRKneDkcEMdCSJc
9 Ybs[bUCwxAyUCUgLLNpt
10 IzcfHwzQHqzGVZgYCbEI
11 hIfDMkiALodmuUfVqWqi
12 zFizeIzSfMfAJtIngbhw
13 QSu[EJ]YompBLlKOxxrI
14 paIQOBUGXhgQZBgoSPww
15 FVEkqnuBHBicxmOGnf]O
|
|