1. 程式人生 > >linux獲取日誌指定行數範圍內的內容

linux獲取日誌指定行數範圍內的內容

得到 http rep 不想 code 水流 clas -a 技術分享

技術分享

假如我要獲取“淺淺歲月拂滿愛人袖”到“落入凡塵傷情著我”之間的內容。

1、首先得到他們所在的行號:

-n選項顯示行號

技術分享

但是有時候grep後顯示的是“匹配到二進制文件(標準輸入)”,說明搜索的字符串在某二進制文件當中匹配到了,不想匹配二進制文件的話,用grep -a即可。

[email protected]:~# grep -an ‘淺淺歲月拂滿愛人袖‘ abc |awk -F: ‘{print $1}‘
3
root@ubuntu:~# grep -an ‘落入凡塵傷情著我‘ abc |cut -d: -f1
6

awk設置分隔符為":",然後打印第1個區塊的內容

也可以用cut來做,-d設置分隔符,-f1取第1個區塊的內容

2、使用sed -n ‘開始行,結束行p‘ filename

[email protected]:~# sed -n ‘3,6p‘ abc
男:淺淺歲月拂滿愛人袖
片片芳菲入水流
女:涼涼天意瀲灩一身花色
落入凡塵傷情著我

如果是查看某一行:

[email protected]:~# sed -n ‘3p‘ abc
男:淺淺歲月拂滿愛人袖

linux獲取日誌指定行數範圍內的內容