Linux 列印檔案某幾行
阿新 • • 發佈:2021-02-04
有這樣的面試題:Linux 列印檔案第 10-20 行。
在此之前,先造一點資料用於列印測試吧:
i=1;while [ $i -le 100 ];do echo "$i 行,測試測試,over。" >> test.txt;let i++ ;done;
這裡簡單寫了個迴圈,造了100行資料,長這個樣子
然後來解決列印10-20行的問題,這裡要使用的指令是sed
1
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
- 替換某個 n
g
替換第二個,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