※ 本文轉寄自 ptt.cc, 文章原始頁面
看板Linux
標題

[問題] sed指令改寫成一行後不能執行

最新2024-01-25 00:11:00
留言18則留言,8人參與討論
推噓6 ( 6012 )
原本書上有一個sed指令是這樣的 sed '/LIST/{ r data11.txt d }' notice.std 改寫成一行之後就不能執行了 sed '/LIST/{r data11.txt;d}' notice.std 錯誤訊息: sed: -e expression #1, char 0: unmatched `{' 請問要怎麼改才可以正確執行,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.187.32 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1703748341.A.BD2.html

18 則留言

Hsins, 1F
d;

abc0922001, 2F
sed '/LIST/{r data11.txt' -e 'd;}' notice.std

pthread, 3F
還是不行

pthread, 4F
sed-e expression #1, char 3unexpected `}'

Hsins, 5F
sed -e '/LIST/{r data11.txt' -e 'd;}' notice.std

Hsins, 6F
因為 r 會把後面所有的內容當成文件名稱,以單引號或換行

Hsins, 7F
為依據。這表示 data11.txt;d} 被當作文件名稱,所以左側的

Hsins, 8F
{ 吃不到右側的 } 被認為沒有閉合,二樓的解法是對的,只是

Hsins, 9F
漏掉了一個 -e 讓他不知道前面被單引號包住的也是表達式

Gold740716, 10F
sed 這真的不是設計錯誤嗎……

brli7848, 11F
首先 樓上要先確定你是在講gnu sex還是bsd sed畢竟 開

brli7848, 12F
發團隊/程式原始碼完全不同

brli7848, 13F
*sed

if4, 14F
請問會避不掉單行的情況嗎?否則就不要用單行啊XD

OSDBNetwork, 15F
sed -e '/LIST/r data11.txt' -e '/LIST/d' notice.s

OSDBNetwork, 16F
td

allmwh, 17F
sed '/LIST/{r data11.txt

allmwh, 18F
d;}' notice.std

pthread 作者的近期文章

[選購] MAG 323UPF or XG32UQ
問題一:購買新款LCD預算金額(預算金額請填範圍值)? 回答一:25000內 問題二:購買新款LCD理想尺寸(請填寫理想尺寸範圍)? 回答二:32吋 問題三:看過置底文後心儀的螢幕型號(請填寫廠牌跟正確型號)? 回答三:無 問題四:購買新款
更多 pthread 作者的文章...