我發現了一個很好的實用程序腳本,可以從所需的起始行高效地輸出所需數量的行。我已經把它命名爲mid.bak,它是基於這裏柱>>http://www.fastechws.com/tricks/unix/head_tail_mid_files.phpBash腳本訪問重定向|管道輸入
用法:mid.bak STARTLINE numlines名
$ cat mid.bak
#!/bin/sh
echo "Positional parameter count: $#"
tail -n +$1 $3 | head -n $2
echo "Parameter three is: $3"
案例一:按上文所述的正常使用,位置參數「 $ 3「。
$ mid.bak 3 2 file.txt
Positional parameter count: 3
This line 3 in file.txt
This line 4 in file.txt
Parameter three is: file.txt
例II &三: 「$ 3」 是神祕缺席。
$ mid.bak 3 2 < file.txt
Positional parameter count: 2
This line 3 in file.txt
This line 4 in file.txt
Parameter three is:
$ cat file.txt | mid.bak 3 2
Positional parameter count: 2
This line 3 in file.txt
This line 4 in file.txt
Parameter three is:
我的問題:位置參數高於$ 3是可通過正常的$ 1,$ 2 ..所以爲什麼它不包括在計數「$#」爲案例一參考&沒有呼應出的腳本案例二&三?
因爲在案例2和3中你的程序只有兩個參數。嘗試在'3 2'後面添加另一個參數並查看它打印出來的內容 – 2013-03-05 21:15:24
謝謝你。但是請注意,實際上$ 3是可用的,並且在每種情況下都使用相同的值:tail -n + $ 1 $ 3 ..這個腳本使用了$ 3。 – 2013-03-05 21:26:59