我試圖從名爲changesfile的文件正確地將參數傳遞給sed,但我一直不成功。它可能是文件修改文件的內容或使用for循環的方式。我不確定。BASH-Sed未能刪除填充元字符的屬性行
進出口使用的命令:
cat changesfile | while read i ; do sed -e "s/$i//g" "filename" ; done
cat changesfile | while read i ; do sed -i "s/$i//g" "filename" ; done
cat changesfile | while read i ; do sed -e '/$i/d' filename ; done
cat changesfile | while read i ; do sed -e '/"$i"/d' filename ; done
我需要與噸的元字符的文件匹配某些行。東西我嘗試匹配並刪除低於:
fileattribute[hostname.stile.tib.area2]=Disk /var;default_queue;area-unix
fileattribute[hostname.stoop.trb.area]=Disk /tmp;default_queue;area-unix
這裏有changesfile的包含通配符和轉義字符正確地傳遞信息,以sed的內容如下:
.*hostname\.stoop\.trb\.area.*Disk.*\/tmp.*area\-unix$
.*hostname\.stile\.tib\.area2.*Disk.*\/var.*area\-unix$
到目前爲止沒有任何工作。一些命令刪除了正則表達式加上其他的東西。不知道爲什麼。任何意見非常感謝。沒有人在我的工作場所有幫助。
我不明白背後的邏輯。你能否請進一步解釋? (我試圖幫助) – Hitman47
Stackoverflow忽略了您嘗試使用'
'和''進行格式化。對於代碼,用上面的文本中的空行分隔,並在每行的開頭使用4個空格。祝你好運。 – shellter
'cat changesfile |同時閱讀我;做sed -ie「s/$ i // g」文件名; done'會從文件名中找到changefile中的行。 – Perleone