一些shell技巧

2021-08-31 14:05:33 字數 1202 閱讀 3275

1. 批量刪除某些指定檔案

我們都知道用find,很快就可以給出:

find . -name 『your_pattern*』 -exec rm -f {} \;

恩,不過還有更快更簡潔的方法,用find自帶的delete:

find . -name 『your_pattern*』 -delete

2. 列出當前目錄下的所有目錄(不遞迴)

你能想到幾種方法?我這裡有三種解決方法:

(1) $ ls -l | egrep 『^d』

(2) $ find . -maxdepth 1 -type d

(3) $ ls -d */.

最後乙個是從別處看來的,很巧妙。歡迎提供其它不同的方法。

3. 列印檔案的倒數第n行

以倒數第2行為例,我的通常做法是:

$ tail -2 my_file | head -1

另一種方法是:

$ gawk 『begin ; end 』 my_file

[注:在一些awk(不是gawk)中,rs應該是乙個字元,而不能是正規表示式。]

4. 產生連續的數字

常見的方法是用seq:

比如產生1~10的數字,

$ seq 1 10

其實也可以用:

$ echo

倒敘時這樣:

$ seq 10 -1 1

或者:

$ echo

用seq的好處是可以指定步長,但它只能針對數字; 雖然不能指定步長,但可以適用於字母。另外,很明顯,seq的分隔符是\n,而是空格。

5. *grep

你最常用的很可能是grep,可是除此還有兩個grep:fgrep和egrep。fgrep是fixed grep的縮寫,而不是fast grep,事實上,搜尋同樣的字串時fgrep通常比grep要慢;egrep是extended grep的所寫,因為它採用了擴充套件的正規表示式和更好的演算法,所以你應該更傾向於用egrep而不是grep。

題外話:有多少人知道grep是什麼縮寫?我也是最近才知道的,它其實是global regular expression print的縮寫,ms也有人說是get regular expression and print。grep如此常用,以至於連詞典都把它收錄為乙個單詞了。

Shell開發的一些技巧和經驗

1 擷取字串 擷取字串的兩種方式 echo expr substr var sta count var 表示被擷取的字串源。sta 表示開始擷取的位置。count 擷取的字串的個數 上述兩種方式有一些小的區別,下面用乙個例子來說明 s 12345 sta 2 count 2 執行echo 結果輸出 ...

shell 的一些基本方法與技巧

這段時間在弄些shell,總結一些基本的一些方法技巧 1 變數的複製 sh temp home sh name 注意點 兩邊不要有空格,下面用的sh temp時候 使用 sh temp 即可獲取 2 if條件判斷 判斷檔案是否存在 if f sh temp zhao.sh then 如果存在zhao...

shell一些技巧和知識點

表示的是乙個命令執行完,忽略其返回值,繼續執行下一行 表示只有前面為true才繼續執行後面的命令,否則忽略,可以理解為短路執行 表示子前面為false才繼續執行後面的命令,這個比以前看到的解釋更容易理解 凡是要輸出字串的,最好用引號括起來,否則容易被shell理解為命令,這一點很容易疏忽 是一種命令...