Bash
命令的每個輸出行的前綴和後綴字元串
我在嘗試編寫 Bash 腳本時遇到了問題。輸出時
grep
,它(通常)返回多行。我想為這些輸出行中的每一個添加前綴和後綴。我還想指出,我正在
ls
輸入grep
,例如:ls | grep
使用 sed:
ls | grep txt | sed 's/.*/prefix&suffix/'
與
sed
:ls | grep pattern | sed -e 's/^/prefix/' -e 's/$/suffix/'
但是請注意,這會受到帶有換行符的文件名問題以及所有各種解析問題的影響,
ls
這通常是一個壞主意。用 perl
perl -e 'print "prefix".$_."suffix\n" for grep { m/somepattern/} glob "*"'
注意 - perl
grep
可以採用模式 - 就像grep
命令一樣,但您也可以執行應用文件測試等操作。例如
grep {-d} glob "*" #filters directories. grep { (stat)[9] > time() - 60 } glob "*" #reads file mtime and compares.
grep
預設迭代器內$_
設置為目前元素的值,因此您可以應用sed
/grep
樣式正則表達式,或執行各種基於$_
.