1. 程式人生 > 其它 >Linux 列印檔案某幾行

Linux 列印檔案某幾行

技術標籤:學習shell

有這樣的面試題:Linux 列印檔案第 10-20 行。

在此之前,先造一點資料用於列印測試吧:

i=1;while [ $i -le 100 ];do echo "$i 行,測試測試,over。" >> test.txt;let i++ ;done;

這裡簡單寫了個迴圈,造了100行資料,長這個樣子
在這裡插入圖片描述
然後來解決列印10-20行的問題,這裡要使用的指令是sed1

sed -n '10,20p' test.txt

輸出:
在這裡插入圖片描述
-n 按行輸出,單引號內的是執行區間10-20,p是列印指令。2

拓展

  • 替換:s命令, "/" 是界定符

預設替換第一個

case echo hello dog dog dog | sed 's/dog/cat/'
hello cat dog dog
  • 替換全部 g
case echo hello dog dog dog | sed 's/dog/cat/g'
hello cat cat cat
  • 替換某個 ng

替換第二個,mac下不能加g,其他環境可以使用2g

case echo hello dog dog dog | sed 's/dog/cat/2'//mac 2不能加g
hello dog cat dog
  • 列印命令 p
case echo code hard >> test.txt
➜  case
sed -n 's/code/life/p' test.txt life hard
  • 刪除命令 d
case sed  '/^code/d'  test.txt
//刪除空行
➜  case sed '/^$/d' test.txt

  1. sed ↩︎

  2. Linux Sed命令詳解 ↩︎