我正在嘗試在 UNIx 中使用管道命令替換一些單詞(sed),然后使用 head 命令向我顯示檔案的前 9 行。但是,head 命令會擦除 sed 命令并自行執行。這是我正在嘗試做的事情:
$ sed 's/[n]d/nd STREET/g' street | sed 's/[r]d/rd STREET/g' street | head -n 9 street
01 m motzart amadeous 25 2nd 94233
02 m guthrie woody 23 2nd 94223
03 f simone nina 27 2nd 94112
04 m lennon john 29 2nd 94221
05 f harris emmylou 20 2nd 94222
06 m marley bob 22 2nd 94112
07 f marley rita 26 2nd 94212
08 f warwick dione 26 2nd 94222
09 m prine john 35 3rd 94321
uj5u.com熱心網友回復:
sed并且head僅在沒有為它們提供要讀取的檔案名時才從標準輸入中讀取。因此,當您給出headname時street,它??會忽略其標準輸入(即輸出所在的sed位置)。
僅在管道前面提供一次檔案名。
$ <street sed -e 's/[n]d/nd STREET/g' -e 's/[r]d/rd STREET/g' | head -n 9
順便說一句,您也可以撰寫此代碼以僅使用一個 sed 操作來處理nd和rd:
$ <streed sed -e 's/\([rn]d\)/&1 STREET/g' | head -n 9
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516468.html
標籤:linuxUnix
