shell提取字串指定的內容

2021-07-09 04:51:56 字數 2146 閱讀 4612

在寫shell程式的很多時候我麼需要提取字串中相應的值來做進一步的處理,比如需要寫乙個關閉某些程序的指令碼,此時就需要獲取這些程序的id然後加上kill命令來關閉這些程序,然而當我們使用ps命令去查詢程序id的時候我們得到的值不僅僅包含程序的id值,還包含很多資訊,提取程序id 這個關鍵字串的值就不得不使用兩個命令cut 和awk;

用法: cut 引數 檔名

說明:cut 命令從檔案的每一行剪下位元組、字元和字段並將這些位元組、字元和字段寫至標準輸出。

引數:

-b :以位元組為單位進行分割。這些位元組位置將忽略多位元組字元邊界,除非也指定了 -n 標誌。

-c :以字元為單位進行分割。

-d :自定義分隔符,預設為製表符。

-f :與-d一起使用,指定顯示哪個區域。

-n :取消分割多位元組字元。僅和 -b 標誌一起使用。如果字元的最後乙個位元組落在由 -b 標誌的 list 引數指示的

更多引數請參考:cut - -help

-b用法:

以位元組為單位,指定相應的位元組輸出,由於乙個英文本元只占用乙個位元組,所以對英文本元可以與-c等價,但是占用多個節編碼的字元不適用,比如中文;

檔案內容:

$ cat test.txt

1234567890

abcdefghij

abcdefghij

hello wrold!

指定檔案中每行的第1,3到7個字元輸出:

cut -b 1,3-7 test.txt

134567

acdefg

acdefg

hllo w

-n表示1到前n個字元,n-表示從n開始的所有字元

列印前兩個字元和從第8個開始的字元

$ cut -b -2,8- test.txt

12890

abhij

abhij

herold!

中文:

檔案內容:

$ cat test1.txt

我們好像在哪見過

你記得嗎?

好像那是乙個春天!

列印第1個位元組的結果

$ cut -b 1 test1.txt▒▒

▒亂碼原因:中文乙個字元用兩個以上位元組編碼

-c的用法和-b的用法基本相同,但是-c是以字元進行分割,能更好的提取多位元組編碼的字元。

檔案內容:

$ cat test1.txt

我們好像在哪見過

你記得嗎?

好像那是乙個春天!

列印第1個位元組的結果

我 你

好前面講的-b和-c都是以固定擷取字串,-d和-f結合就可以按照我們規定的方式擷取字串,通過-d來只是以什麼為分隔符,通過-f來指示取第幾項;

基本格式:

cut -d 『指定分隔符』-f 需要第幾項

開啟/etc/passwd檔案取前五行

cat /etc/passwd|head -n 5

root:x:0

:0:root

:/root

:/bin/bash

daemon:x:1

:1:daemon

:/usr/sbin

:/usr/sbin/nologin

bin:x:2

:2:bin

:/bin

:/usr/sbin/nologin

sys:x:3

:3:sys

:/dev

:/usr/sbin/nologin

sync:x:4

:65534

:sync

:/bin

:/bin/sync

觀察發現每一行都有『:』每一項之間通過『:』來分隔,如果想要取第一項可以輸入如下命令:

cat /etc/passwd|head -n

5| cut -d

':'-f

1root

daemon

binsys

sync

php 提取字串中指定內容及將手機號內容替換

1 提取字串中指定之間的內容,並將手機號 身份證等敏感資訊替換為 php程式 str msg 1.4 n 18 basemsgid 0 from 121279488 from sub 0 is muti msg 0 is redirecting 0 method tmsg request msgid...

提取字串substring

substring 方法用於提取字串中介於兩個指定下標之間的字元。語法 stringobject.substring startpos,stoppos 引數說明 注意 1.返回的內容是從 start開始 包含start位置的字元 到 stop 1 處的所有字元,其長度為 stop 減start。2....

python從字串中提取指定內容

我們在做資料處理的時候,會遇到包含多條格式類似的長字串,比如說 recv node1 temperature 26 node1 humidity 48 node2 temperature 36 node2 humidity 48 node3 temperature 24 node3 humidity...