Bash

命令的每個輸出行的前綴和後綴字元串

  • December 16, 2021

我在嘗試編寫 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 "*"'

注意 - perlgrep可以採用模式 - 就像grep命令一樣,但您也可以執行應用文件測試等操作。

例如

grep {-d} glob "*" #filters directories.
grep { (stat)[9] > time() - 60 } glob "*" #reads file mtime and compares. 

grep預設迭代器內$_設置為目前元素的值,因此您可以應用sed/grep樣式正則表達式,或執行各種基於$_.

引用自:https://unix.stackexchange.com/questions/251388