91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell字符串截取之cut

發布時間:2020-08-01 15:22:46 來源:網絡 閱讀:1521 作者:小楊楊雪松 欄目:編程語言

       cut命令是shell下一個比較強大的工具,它是以每一行為一個處理對象的,可以對一行字符串進行多種模式匹配的剪切操作,也可以對一個排列整齊的文本進行操作,下面我們就來說說cut這個命令吧:

       cut命令主要有3個定位方法:

             (1)對字節的定位,用 -b 選項

             (2)對字符的定位,用 -c 選項

              ( 3 ) 域,用選型 -f


下面我們來看看具體的實現:

  shell字符串截取之cut    

 我們來一一說一下上面的現象:

        我們先用pwd命令看一下我們的當前的路徑。然后我們想提取當前路徑這個字符串的第4個字節,就用上圖所示的這條命令:

        pwd | cut -b 4

        我們可以看到,上圖執行這個命令之后,輸出了第四個字節m;

 所以我們這里看明白了,如果我們要提取哪一個字節,直接在-b 選項后面加上相應的數字就可以了。


如果我們想直接提取第3,4,5,8個字節呢?我們就可以用上圖的第二條命令:

       pwd | cut -b 3-5,8

       執行這條命令后,我們可以看到,上圖中輸出了omex分別對應第3,4,5,8字節。

注意:cut命令如果使用了-b選項,那么我們在執行命令時,cut會先把-b所有的定位進行從小到大的排序,然后再提取。比如上圖最后的那兩條命令,我們把命令里面的 “3-5,8”換成了“8,3-5”,輸出的結果是一樣的。


我們再來看看:

shell字符串截取之cut

從上圖我們可以看到,-3 和 3- 是有區別的。-3表示從第一個字節到第三個字節,而 3- 表示從第三個字節以后的所有這行的內容。


下面我們在來看看下面這兩個命令選項的區別:

shell字符串截取之cut

我們目前從上圖看到,這兩條命令里面的“-b”“-c”選項不一樣,但它們的結果一樣,那么我們再來看看下面,就知道他們的不同在哪里了:

shell字符串截取之cut

 在前面的圖中我們可以看到,當我們要截取的都是單字節字符時,使用 -b 和 -c 就沒有什么區別,但當我們提取中文的時候呢?比如上面的那幅圖,我們寫了個file.c文件,里面有3行漢字,我們再分別使用上面的兩條命令的時候,我們就可以看到區別了:當我們用“-c”選項時,以字符為單位,輸出是正常的,但“-b”是以字節為單位的,所以輸出就是亂碼了。所以這兩條命令還是有區別的。


下面我們來說說“域”這個概念:

       為什么會有“域”的提取呢?因為我們上面提到的-b和-c只能在固定格式的文檔中提取信息,而對于非固定格式的信息則束手無策了,這時候,域就派上用場了。

       我們知道,在某些文件中會有好多冒號,冒號在文件的每一行中都起到了非常重要的作用,冒號用來隔開每一個項。而我們cut命令就提供了這樣的提取方式,也就是設置“間隔符”,再設置提取第幾個域就行了,我們具體來看看下面的實驗吧:

我們在終端執行如下命令,可以獲得當前bash的默認路徑:

shell字符串截取之cut

       我們從上圖可以看到,其中的每一個路徑都被一個“:”分隔開來,假如我們現在想獲取第一個冒號和第二個冒號之間的路徑,我們就可以很方便的使用cut命令來幫我們實現,我們在終端輸入如下的命令:

shell字符串截取之cut

       從上圖的結果我們可以看到,我們提取出來了我們想要的第二個域的路徑。我們來解釋下上面的命令:-d和‘:’一起把管道輸入的一行字符串進行了域的分隔,每一個分隔符(:)和前面的字符串被稱為一個域。-f選項后面跟的是我們想提取的那個域。所以該命令cut -d ‘:’-f 2就表示輸出第二個分隔符之前的域。

如果我們執行下面的命令:

shell字符串截取之cut

       輸入上面兩條很相近的命令,我想大家可以很清晰的看到它們的區別,第一條輸出的是第二個域和第四個域,而第二條命令輸出的是第二到四個域(正如我們在圖中用不同顏色標注的那樣)。

 

我們在來看看cut格式化整齊的文本進行的操作:

shell字符串截取之cut

從上面我們可以看到,這時格式化比較整齊的文本的一部分,那么我們想把前面的declare -x去掉,我們該怎么做呢?其實做法我們上面都說過:

shell字符串截取之cut

其中的“12-”表示輸出從第12個字符以后的所有字符。其實和我們上面所說的對字符串的操作沒有什么區別。


上面就是自己目前所知道的cut命令的基本用法。























向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凭祥市| 元氏县| 宁阳县| 霍州市| 许昌市| 汾阳市| 白山市| 四会市| 临颍县| 潍坊市| 柳林县| 遵义市| 鱼台县| 奉节县| 辽阳县| 永嘉县| 金湖县| 吉木萨尔县| 黔西县| 左权县| 龙岩市| 峨眉山市| 商都县| 大埔县| 石景山区| 甘孜县| 察雅县| 鄂托克前旗| 郧西县| 固原市| 望都县| 汾阳市| 江阴市| 陈巴尔虎旗| 宜阳县| 木兰县| 新绛县| 德保县| 大悟县| 涿鹿县| 崇阳县|