回文章列表
作者WalkingIce.bbs@ptt.cc ( 殺手哥吉拉 13) 看板: linux
標題Re: [問題] 如何把指令的訊息指定成某一變數的內容 …
時間批踢踢實業 (2008/10/04 Sat 05:40:19)
※ 引述《peter308 (pete)》之銘言:
: 標題: [問題] 如何把指令的訊息指定成某一變數的內容??????
: 時間: Fri Oct  3 15:25:07 2008
:   資料夾下有一個檔案 0001.dat
:   內容如下:
:   xxxxxxxxxxxxx
:   yyyyyyyyyyyy
:   zzzzzzzzz zzzzzzzzzzzz
:   dddddddddddddddddddddd
:   linux cccccc
:   aaaaaaaaaaaa
:
:
:   我想用 find -name \0001.dat |xargs grep -i "linux"
:   把有linux的那行 "linux cccccc"
:   指定給 一個變數 var
: → peter308:我補充一點  那些無關緊要的其他內容是資料夾其他的檔案   10/03 16:25
: → peter308:linux cccccc 有包含在內 ,但訊息內容會多出一些檔案名稱  10/03 16:26

首先,find 會把該目錄底下,所有檔名為 0001.dat 的路徑都列出來
有可能會是
/0001.dat
a/0001.dat
another/dir/0001.dat

接著 xargs 會把該檔名路徑傳給後面的 grep,以第一個為例就會變成
grep -i "linux" ./0001.dat

這行指令會把 0001.dat 裡的包括 "linux" 這個字的每一行都列出來,不分大小寫

也就是說如果 0001.dat 的檔案內容為
$ cat 0001.dat
line 1
line 2
line 3  LINUX
line 4 lInux
line 5

輸出結果就會變成
$ grep -i linux 0001.dat
line 3  LINUX
line 4 lInux

關於所謂「無關緊要的訊息」
1) 先確定你是不是不要區分大小寫?
2) 是不是有很多個 0001.dat 檔案,都包含了 linux 字樣

--


        我想你會衰成這樣都是我害的
                                        ---- Tizzy Mac

                                                緊張的麥金塔?這是誰(._.?)

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 59.104.230.39
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻