好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Shell腳本逐行讀取文本文件(不改變文本格式)

Shell腳本逐行讀取文本文件(不改變文本格式)

熱門標簽:地圖標注輻射圖案 申請公司400電話要注意什么 寧波智能外呼系統公司 聯通電話機器人怎么接 安裝外呼系統費用 曲阜400電話辦理 衛星地圖標注地名 奧維互動地圖標注參數 電銷機器人 劍魚

網上有很多 shell script 讀文本文件的例子,但是都沒有講出故事的全部,只說了一半。舉個例子,比如從一個 testfile 文件中讀取如下格式的文本行:

復制代碼 代碼如下:

$ vi testfile
ls      -a -l /bin |  sort
ls      -a -l /bin |  sort | wc
ls      -a -l |  grep sh | wc
ls      -a -l
ls      -a -l |       sort      |    wc

最常見的一個 line by line 讀取文件內容的例子就是:
復制代碼 代碼如下:

$ vi readfile
#!/bin/sh

testfile=$1
while read -r line
do
    echo $line
done $testfile

$ chmod +x readfile
$ ./readfile testfile
ls -a -l /bin | sort
ls -a -l /bin | sort | wc
ls -a -l | grep sh | wc
ls -a -l
ls -a -l | sort | wc


這個例子的問題是讀取文本行后,文本格式發生了變化,和原來 testfile 文件的內容不完全一致,空格字符自動被刪除了一些。為什么會這樣呢?因為 IFS,如果在 shell script 里沒有明確指定 IFS 的話,IFS 會默認用來分割空格、制表、換行等,所以上面文本行里多余的空格和換行都被自動縮進了。

如果想要輸出 testfile 文件原有的格式,把每行(作為整體)原封不動的打印出來怎么辦?這時需要指定 IFS 變量,告訴 shell 以 "行" 為單位讀取。

復制代碼 代碼如下:

$ vi readfile
#!/bin/sh

IFS=""

testfile=$1
while read -r line
do
    echo $line
done $testfile

$ ./readfile testfile
ls      -a -l /bin |  sort
ls      -a -l /bin |  sort | wc
ls      -a -l |  grep sh | wc
ls      -a -l
ls      -a -l |       sort      |    wc    


上面兩種方法的輸出不是差不多嗎,有什么關系呢,第一種還美觀一些?關系重大,VPSee 昨天寫了一個模擬 shell 的 C 程序,然后又寫了一個 shell script 來測試這個 C 程序,這個 script 需要從上面的 testfile 里讀取完整一行傳給 C 程序,如果按照上面的兩種方法會得到兩種不同的輸入格式,意義完全不同:
復制代碼 代碼如下:

$./mypipe ls -a -l | sort | wc
$./mypipe "ls -a -l | sort | wc "

顯然我要的是第2種輸入,把 "ls -a -l | sort | wc " 作為整體傳給我的 mypipe,來測試我的 mypipe 能不能正確識別出字符串里面的各種命令。

如果不用 IFS 的話,還有一種方法可以得到上面第二種方法的效果:

復制代碼 代碼如下:

#!/bin/sh

testfile=$1
x=`wc -l $testfile |awk '{print $1}'`

i=1
while [ $i -le $x ]
do
    echo "`head -$i  $testfile | tail -1`"
    i=`expr $i + 1`
done

您可能感興趣的文章:
  • shell文件處理筆記之插入文本到文件的方法
  • Shell腳本學習指南之文本處理工具
  • Shell文本處理三劍客之sed的使用
  • Shell腳本對比兩個文本文件找出不同行的2個方法分享
  • Shell實現文本去重并操持原有順序
  • Shell中如何刪除文本比較長的行的實現方法
  • Shell腳本如何逐行處理文本文件

標簽:仙桃 三門峽 遵義 上饒 江西 安康 大興安嶺 大慶

巨人網絡通訊聲明:本文標題《Shell腳本逐行讀取文本文件(不改變文本格式)》,本文關鍵詞  Shell,腳本,逐行,讀取,文本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell腳本逐行讀取文本文件(不改變文本格式)》相關的同類信息!
  • 本頁收集關于Shell腳本逐行讀取文本文件(不改變文本格式)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 在线视频免费观看a毛片| 男人被爽的娇喘呻吟声音| 扒开美女?狂揉?真人游戏| 国产亚洲欧美在在线人成| 亚洲va在线| 午夜福利理论片在线观看播放| 免费看女教师高潮A片特黄| k频道在线观看国产精品| 老司机福利在线视频| 好爽?要高潮了?深点霸| 一本加勒比hezyo高清| 被下药后无遮挡漫画| 中国老少配另类hd| Chinese裸男GaYGAYS?| 亚洲国产精品18久久久久久| 高h榨乳疏通乳孔扩张| 狠狠做深爱婷婷久久一区| 刺激一区| 后进极品美女圆润翘臀| www.久久这里只有精品国产最新| 隐私美女下部无遮挡| 五月激情六月婷婷| 亚洲欧美另类激情综合区小说| 性生交大片1978| freepron91| 厨房春潮唐小米| 久久人精品| 一夲道HEYZO无码专区| 大学生高潮一级A片| 男人操女人图片| 欧美成人二区| 农村丰满女人伦子伦精品| 无码欧精品亚洲日韩一区二区三区| 免费女上男下xx00xx动态图| 明星ai人脸替换脸网站免费| 美女露100%胸| 欧美成人精品aV在线观看图图破| 亚洲熟女综合色一区二区三区介绍 | 男人添女人阳道视频| 男女做性无遮挡免费视频| 巜少妇4激情婬乱A片|