最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell如何遍歷包含空格的文本詳解

 更新時間:2021年04月06日 14:15:25   作者:羅恩  
這篇文章主要給大家介紹了關(guān)于Shell如何遍歷包含空格的文本的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

shell遍歷文件

有時候要對某個文件夾下面的所有文件做同樣的處理,比如對每個文件統(tǒng)計行數(shù),這時用遍歷文件的方式就很簡單了。

$ for i in `ls`;do wc -l $i;done
55552 f123.txt
55819 f124.txt
56118 f125.txt
56404 f126.txt
56633 f127.txt
56842 f128.txt

這里使用了for...do...done循環(huán),注意循環(huán)語句寫在一行上面時,要用 ; 分隔開來。

ls要用反引號擴起來。

Shell遍歷空格文本

處理包含空格或特殊字符的文件是每個使用Linux的人都應(yīng)必須掌握的。本文我們將討論如何在帶有空格的文件上使用for循環(huán)。

測試文本如下:

This line has spaces
these
do
not

現(xiàn)在,我們使用for循環(huán)來迭代這個文本。當(dāng)我們執(zhí)行for循環(huán)時,shell會看到第一行的空格,并假設(shè)每一行都是不同的迭代。

[root@test ~]# for i in $(cat test);do echo $i;done
This
line
has
spaces
these
do
not

IFS定義了在分隔單詞時用作分隔的字符或字符集。

維基百科:對于Unix操作系統(tǒng)的許多命令行解釋器(“shell”),內(nèi)部字段分隔符(簡稱IFS)是指一個變量,該變量定義用于將模式拆分為某些操作的標(biāo)記的字符。

默認(rèn)情況下,IFS(字段分隔符)的值為<space><tab><newline>。因此,當(dāng)shell看到第一行中的空格時,它將該行劃分為四個標(biāo)記(四個單詞)。

修改IFS的值來滿足我們的需求

IFS是一個環(huán)境變量。在更改環(huán)境變量之前,最好的做法是保存它們的內(nèi)容。這樣就可以輕松地將它們設(shè)置為默認(rèn)值。

首先,我們先將IFS變量的值保存到OLDIFS中。

OLDIFS=$IFS

我們可以手動設(shè)置IFS成任何我們想要的值。在這種情況下,我們需要將字段分隔符作為換行符。我們可以像任何變量一樣設(shè)置IFS。

IFS=<our value>

要將IFS設(shè)置為換行符,我們可以使用命令替換從echo命令獲取換行符輸出。

IFS=`echo -e "\n"`

echo -e "\n"的輸出是一個換行符。用于反引號封裝,將shell命令的輸出作為變量IFS。

現(xiàn)在,當(dāng)我們執(zhí)行相同的for循環(huán)時,shell將通過換行符來分隔文本。

[root@test ~]# for i in $(cat test); do echo $i; done
This line has spaces
these
do
not


翻譯自Looping Through a File that Contains Spaces – Bash for Loop

總結(jié)

到此這篇關(guān)于Shell如何遍歷包含空格文本的文章就介紹到這了,更多相關(guān)Shell遍歷空格文本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • centos 設(shè)置定時任務(wù)執(zhí)行指定腳本的方法

    centos 設(shè)置定時任務(wù)執(zhí)行指定腳本的方法

    下面小編就為大家?guī)硪黄猚entos 設(shè)置定時任務(wù)執(zhí)行指定腳本的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • shell實現(xiàn)貪吃蛇的示例代碼

    shell實現(xiàn)貪吃蛇的示例代碼

    本文主要介紹了shell實現(xiàn)貪吃蛇的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Linux Shell腳本系列教程(七):腳本調(diào)試

    Linux Shell腳本系列教程(七):腳本調(diào)試

    這篇文章主要介紹了Linux Shell腳本系列教程(七):腳本調(diào)試,本文講解了Bash內(nèi)建調(diào)試功能和自定義調(diào)試功能等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • Shell腳本中的printf命令使用

    Shell腳本中的printf命令使用

    本文主要介紹了Shell腳本中的printf命令使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Shell腳本對文件中的行、單詞、字符進(jìn)行迭代輸出示例

    Shell腳本對文件中的行、單詞、字符進(jìn)行迭代輸出示例

    這篇文章主要介紹了Shell腳本對文件中的行、單詞、字符進(jìn)行迭代輸出示例,本文講解了迭代文件中的每一行、迭代一行中的每一個單詞、迭代一個單詞中的每一個字符等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • 輕松掌握Linux關(guān)機重啟命令

    輕松掌握Linux關(guān)機重啟命令

    在Linux系統(tǒng)下關(guān)機重啟命令有:shutdown、halt、rebbot、init命令,對于這些命令來說,他們的內(nèi)部工作過程是不相同的,下面小編給大家分享一篇文章有助于輕松掌握linux關(guān)機重啟命令
    2015-11-11
  • linux bash中too many arguments問題的解決方法

    linux bash中too many arguments問題的解決方法

    本文介紹下在linux bash shell中出現(xiàn)too many arguments問題的解決辦法,有需要的朋友參考學(xué)習(xí)下
    2013-11-11
  • Linux查看端口占用的幾種常用命令

    Linux查看端口占用的幾種常用命令

    這篇文章主要介紹了Linux查端口占用的幾個常用命令,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-09-09
  • shell腳本中執(zhí)行python腳本并接收其返回值的例子

    shell腳本中執(zhí)行python腳本并接收其返回值的例子

    這篇文章主要介紹了shell腳本中執(zhí)行python腳本并接收其返回值的例子,本文重點在于如何接收python腳本的返回值,需要的朋友可以參考下
    2014-08-08
  • Shell根據(jù)web日志計算平均連接時間功能

    Shell根據(jù)web日志計算平均連接時間功能

    這篇文章主要介紹了Shell根據(jù)web日志計算平均連接時間功能,本文給出了原代碼和自己修改后的代碼,需要的朋友可以參考下
    2014-12-12

最新評論

密云县| 长泰县| 陆河县| 东安县| 万山特区| 大理市| 西丰县| 铜山县| 邵武市| 汝州市| 都昌县| 宁明县| 寻甸| 社旗县| 高淳县| 龙里县| 乐平市| 孝义市| 荥经县| 鸡东县| 乌苏市| 安义县| 浠水县| 日土县| 临武县| 泾阳县| 精河县| 凉山| 濉溪县| 自贡市| 盐边县| 星座| 河北省| 正蓝旗| 连城县| 固镇县| 来宾市| 台北市| 柳江县| 龙山县| 乌拉特中旗|