linux命令行查找指定文件內的內容跨度

grep -B 2 -A 8 --color=always ‘待續’ origin_all.txt | awk ‘/–/{if (x)print x;x="";next}{x=(!x)?$0:x"\t"$0;}END{print x;}’ | shuf -n 20 | sed ‘s/\t/\n/g’

解釋:
origin_all.txt
文件名

–color=always
查找內容顏色

-B 2 -A 8
表示包含’待續’的前2行和後8行,因此,查找出的內容是11行;

awk ‘/–/{if (x)print x;x="";next}{x=(!x)?$0:x"\t"$0;}END{print x;}’
將查找的內容放在一個盒子中,\t分隔每個塊;(還有個–不知道咋解釋,抱歉)

shuf -n 20
表示從內容盒子中隨機選取20個塊(每個塊就是11行)

sed ‘s/\t/\n/g’
將\t換成\n

效果如下:
在這裏插入圖片描述