sed是進行文字替換的不二之選。這樣,我們就可以通過sed用空白替代匹配的句子。
先建立乙個包含替換文字的檔案。例如:
我們的目標是移除包含"mobile phones" 的句子。可以用sed語句來實現:
這裡的匹配模式是用來匹配整句文字的正規表示式,檔案中的每一句話第乙個字元都是空格,句與句之間用"."來分割。因此我們需要匹配內容的格式是:空格+若干文字+需要匹配的字串+若干文字+句點。乙個句子除了作為定界符的句點之外,可以包含任意字元。因此我們要使用[^.]。[^.]*可以匹配除句點之外的任何字元組合。用來匹配文字的"mobile phone" 被放置在兩個[^.]*之間。每乙個匹配的句子均被//替換。
工作原理:
我們使用find在當前目錄下查詢所有的.cpp檔案,然後使用print0列印出以null字元(\0)作為分隔符檔案列表。
此外還可以用-exec來完成此功能,回憶一下,find有乙個選項-exec,他可以對每個find查詢到的檔案執行命令,我們可以使用該選項,具體如下:
(3) 文字切片和引數操作
替換變數內容中的部分文字:
我們可以通過制定字串的起始位置和長度來生成子串,語法如下:
$ $
用下面的命令可以列印第五個字元之後的內容:
從第5個字元開始,列印8個字元
起始字元的索引從0開始計數,我們也可以從後向前計數,將最後乙個字元索引記為-1.但是如果使用附屬作為索引值,則必須將附屬放入括號中,(-1)就是最後乙個字元的索引。
Linux shell指令碼學習攻略筆記3
今天繼續上一次find命令的內容,主要是find和 exec 和xargs的結合和使用。9 find 命令可以借助選項 exec與其他命令進行結合。exec算得上是find最強大的特性之一。比如我們要將某位使用者全部檔案的所有權更換為另乙個使用者 比如root 那麼就可以用 user找出root擁有...
Linux shell 指令碼攻略學習筆記4
xargs 該xargs出場了,它擅長將標準輸入資料轉換成命令列引數。xargs能夠處理stdin並將其轉換為特定命令的命令列引數。xargs也可以將單行或者多行文字輸入轉換為其他格式,例如單行變多行,多行變單行。例1 將多行輸入轉換成單行輸出。將單行輸入轉換成多行輸出。指定每行最大的引數數量n,我...
Linux shell 指令碼攻略學習筆記5
這次該說tr命令了 1 基本用法 tr 只能通過stdin 標準輸入 而無法通過命令列引數來接受輸入。它的呼叫格式如下 tr options set1 set2將來自stdin 的輸入字元從set1 對映 set2,然後將輸出寫入stdout 標準輸出 set1 和set2 是字元類或字符集。如果兩...