在shell中進行字串處理的小嘗試

2021-06-10 05:08:26 字數 855 閱讀 8999

任務:對程式a的輸出「writing found primes into result_ser_prime.txt \n\n serial time is 8.424721 seconds, found 1857859 primes, the last used primes is 5479」中提取第乙個小數

首先,自然想到grep,但是注意grep的功能有些限制:

注意grep處理下列情況的方式:

1.grep是乙個搜尋程式,它只能搜尋匹配乙個正規表示式的一行的存在性.

2.grep可以對一行採取唯一的動作是把它傳送到標準輸出. 如果該行不匹配正規表示式,則其不被列印.

3.行的選擇只基於正規表示式. 行編號或其他準則不能用於選擇行.

4.grep是乙個過濾器. 它可用在管道的左邊或右邊.

5.grep不能用於增加,刪除或修改行.

6.grep不能用於只列印行的一部分.

7.grep不能只讀取檔案的一部分.

8.grep不能基於前面的內容或下一行來選擇一行.只有乙個緩衝區,它只儲存當前行.

可見grep只能對行進行過濾,不能對行進行處理,所以還需編寫其他的表示式。

在這一步的表示式是,grep "serial*"

接著,我們可以利用cut命令,進行下一步處理

我們可以編輯這樣的命令:cut -c17-24 ,這樣的缺點在於我們需要乙個乙個地去數數字的長度,加入出現如同8.44這樣比較短的數字就容易出錯。

這個時候,可以考慮使用cut -d命令,以空格作為分界符:cut -d" " -f5,5 可以看到第乙個空格也算進字元裡

最後,命令是這樣:a | grep "serial*" | cut -d" " -f5,5

新手,歡迎各位指正

在Shell中進行字串大小比較

到網上摘抄了下面2個方法 方法 a 2004.03.08 b 2005.03.08 c expr a b if c eq 1 then echo a b else echo a b fi 方法 date ef modify ab echo echo e modify n date sort head...

在Django框架中進行字串翻譯

使用函式 ugettext 來指定乙個翻譯字串。作為慣例,使用短別名 來引入這個函式以節省鍵入時間.在下面這個例子中,文字 welcome to my site 被標記為待翻譯字串 顯然,你也可以不使用別名來編碼。下面這個例子和前面兩個例子相同 翻譯字串對於計算出來的值同樣有效。下面這個例子等同前面...

shell字串處理

一 構造字串 直接構造 str zero hello str first i am a string str second success 重複多次 repeat the first parm 1 by 2 times strrepeat 舉例 str repeat strrepeat user n...