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

看板Linux作者 (我的征途是星之海)時間14年前 (2011/04/05 20:14), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串3/5 (看更多)
※ 引述《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' -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.122.215

04/05 20:52, , 1F
剛才想到,單以這份log來看似乎只要抓開頭是小寫英文字母
04/05 20:52, 1F

04/05 20:55, , 2F
就可以了,但剛才試了一下grep '^[a-z]' 沒辦法
04/05 20:55, 2F

04/05 20:56, , 3F
但像是grep '^(' 或grep '^[A-Z0-9]' 就能夠抓出其他的
04/05 20:56, 3F
文章代碼(AID): #1DcmUl3s (Linux)
討論串 (同標題文章)
文章代碼(AID): #1DcmUl3s (Linux)