看板 Linux 關於我們 聯絡資訊
※ 引述《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
LokiCjn:我錯了 ^( 也不行,是剛才內容有部份(就是在開頭的 04/05 21:08
LokiCjn:另外mail的格式除了一開始的例子外也有可能是像aa@bb.cc 04/05 22:01