Re: [問題] sed指令取代的問題

看板Linux作者 (我的征途是星之海)時間14年前 (2011/04/05 21:05), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串4/5 (看更多)
※ 引述《LokiCjn (我的征途是星之海)》之銘言: : ※ 引述《DEATHX (幽光)》之銘言: : : 很可惜今天收假要回營區了. : : 這邊的是我的方法: : : a=$(cat test | grep '^[a-z]*\.[a-z]*\@[a-z]*\.[a-z]*\.[a-z]*') : : 上面先把東西存起來到a : : cat test | sed "s/[a-z]*\.[a-z]*\@[a-z]*\.[a-z]*\.[a-z]*/rmove ${a}/g" : : 然後再把a展開,用sed換掉 : : 之後你可以把他重新導向回你原本的檔案 : : 不過你會發現a這個變數裡面似乎把tab(一大行空格)給一起複製進去了 : : 所以你可能第一步要先把空格給過濾掉在丟給a : : 祝你好運 : : 可憐的蔡逼八下士 DEATHX : 看到這個做法就想到 : sed有辦法加多個判斷來達成我要目標嗎? : 目前我要從maillist中抓我要的東西的判斷我會這麼下: : cat maillist | grep -v '^$' | grep -v '^[0-9A-Z]' | grep -v '(' | grep -v '^-' : 這個判斷可以保證能找到我要東西 : 但這樣的判斷要如何餵給sed使用呢? : 試了一下沒辦法這樣寫 : cat mailist | sed 's/${a}/ remote${a}/g' 還是用回文的好了 剛才想到 單就這份log的格式來說 我只要抓開始是小寫英文字母的就可以了 但試了一下 grep '^[a-z]' 抓不到我要的東西 是因為開頭有空白的關係嗎? 但又試了 grep '^(' 卻可以抓到有(的資料 而這些行也同樣開頭有空白 如果可行的話又要如何利用sed把整份log都改成我要的格式呢? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.122.215

04/05 21:08, , 1F
我錯了 ^( 也不行,是剛才內容有部份(就是在開頭的
04/05 21:08, 1F

04/05 22:01, , 2F
另外mail的格式除了一開始的例子外也有可能是像aa@bb.cc
04/05 22:01, 2F
文章代碼(AID): #1DcnEUMw (Linux)
討論串 (同標題文章)
文章代碼(AID): #1DcnEUMw (Linux)