grep的用法 - Linux

George avatar
By George
at 2014-03-09T07:08

Table of Contents

※ 引述《lc85301 (pomelocandy)》之銘言:
: ※ 引述《verdd (R.V.)》之銘言:
: : 各位大大 高手好 想請問各位一個grep抓資料的問題
: : 我想要從資料庫裡面挑選我要的資料
: : 例如我想從5筆資料裡面挑選特定3筆出來
: : 資料庫的結構是這樣
: : 例如
: : 1 x x x x x x x x .......
: : 2 y y y y y y y y.........
: : 3 z z z z z z z z ........
: : 4 a a a a a a a a ........
: : 5 b b b b b b b b ...........
: : 我想指定第1,4,5 筆資料被挑出來 包括後面那一串東西都被完整列出來
: : 然後寫入result.txt檔
: : 1 x x x x x x x x .......
: : 4 a a a a a a a a ........
: : 5 b b b b b b b b ...........
: : 請問我指令該怎麼打呢? 謝謝各位指教
: : grep ......... "database.txt" > result.txt
: 我回一個來試著回答
: 首先我要說原PO的問題有點模糊
: 我猜CP64大大也是想回文"選出來的條件是什麼"也是類似的原因
: 如果問題只有verdd描述的這樣幾行,那用grep sed去取就可以
: 但grep的用法是比對某特定字串,這裡只有3個,但要取的內容完全不一樣
: 而且1,4,5很容易跟內容重複
: 要是要取出開頭為1,4,5,9,13,22,35,57 ,咦,自動找出規律了(誤)
: 你用grep 解就會吃土
: sed一樣,數量一多也會吃土
: --
: 如果數字有規律,例如每3行去取
: 那應該可以用awk去解
: 事實上我覺得我打的規律1,4,5,9應該可以用awk去取
: 小弟不才,有沒有強者出來解一下lol
: --
: 如果問題大到100行以上
: 這時候我就會選python script
: 但首先還是要回到你的條件
: "請問你選出來的條件是什麼"
: 也許是一堆想找的字串或數字
: 假設是字串好了
: 我會先建個dict
: 然後取每行的第一個token,看看它在不在dict裡面
: 那請問這些東西在哪?也許在另一個檔案?
: 我們都不知道耶lol
: --
: 總之,問題問得愈清楚,大家也就回答的愈清楚

我用幾個檔案測試了苦主的問題,lc85301大大說應該用awk解決,我也是用這工具...

如果確定要用每列開頭第一行的數據來決定要不要print出來這一列,可以這麼做:

awk '{if ($1==1 || $1==4 || $1==5){print $0}}' database.txt >> out.dat

$1代表每列的第一行,由於這個問題要用第一行做判斷故出此策,$0代表一整列.

out.dat 就會看到過濾的結果了。

--

傑米,炸掉它吧。 ⊙─ ─⊙▂⊙ 碰到問題,用C4就對了!

█◤
Adam Savage James Hyneman
MYTHBUSTERS by dajidali

--
Tags: Linux

All Comments

Rae avatar
By Rae
at 2014-03-14T07:08
AWK真得滿好用的0.0
George avatar
By George
at 2014-03-18T04:57
感謝解圍阿~~~!!

Mint 16 KDE登入語系 & 輸入法

Joe avatar
By Joe
at 2014-03-08T12:48
各位前輩好 小弟最近工作環境需要用到LINUX環境 所以用VBOX灌了MINT來用, 但最近有一個使用上的困擾,就是我一開始為了不要讓HOME目錄下面出現中文 (ex 下載、桌面...等) 所以我選擇使用英文版,後來再新增中文語系,但問題就來了 每次登入時,登入畫面右上角都是預設英文語系,我都還要去切換成中 ...

VMware Player 無法安裝 Ubuntu

Ivy avatar
By Ivy
at 2014-03-08T05:16
我在win7 64bit 裝了 VM, 想要用linux, 可是啟動時出現錯誤訊息 This virtual machine is configured for 64-bit guest operating systems. However, 64-bit operation is not possible ...

grep的用法

William avatar
By William
at 2014-03-08T03:08
※ 引述《verdd (R.V.)》之銘言: : 各位大大 高手好 想請問各位一個grep抓資料的問題 : 我想要從資料庫裡面挑選我要的資料 : 例如我想從5筆資料裡面挑選特定3筆出來 : 資料庫的結構是這樣 : 例如 : 1 x x x x x x x x ....... : 2 y y y y y y ...

grep的用法

Mary avatar
By Mary
at 2014-03-07T23:36
各位大大 高手好 想請問各位一個grep抓資料的問題 我想要從資料庫裡面挑選我要的資料 例如我想從5筆資料裡面挑選特定3筆出來 資料庫的結構是這樣 例如 1 x x x x x x x x ....... 2 y y y y y y y y......... 3 z z z z z z z z . ...

ssh,vpn有辦法向VNC一樣用listen連線嗎?

Rachel avatar
By Rachel
at 2014-03-07T23:21
我目前實驗室管的伺服器有openVPN功能,方便同學校外抓期刊或是共同實驗室資料, 我一直希望在其他學校找夠熟的朋友架類似的VPN,抓paper會很方便。 上星期聽到有同學要去日本念書,我想把網樂通弄出簡單的網芳和FTP給他,再加VPN 來用,看是要和實驗室串連還是怎樣玩再說。 現在有一個問題,我同學表示 ...