我試圖在調用編輯器命令之前用一個等效命令替換類似「vim」的編輯器命令,該命令在輸入文件中剝離顏色代碼。劇本是由bash中被調用,並且必須符合格式command + ' ' + filename
所以尾隨)
是給我找麻煩:沒有右括號的等效bash語句
EDITOR <(sed -e "s/\x1B\[[0-9;]*[JKmsu]//g" < color.js)
你能不能想辦法做到這一點沒有尾隨)
,一切都必須來之前的文件名?
我試圖在調用編輯器命令之前用一個等效命令替換類似「vim」的編輯器命令,該命令在輸入文件中剝離顏色代碼。劇本是由bash中被調用,並且必須符合格式command + ' ' + filename
所以尾隨)
是給我找麻煩:沒有右括號的等效bash語句
EDITOR <(sed -e "s/\x1B\[[0-9;]*[JKmsu]//g" < color.js)
你能不能想辦法做到這一點沒有尾隨)
,一切都必須來之前的文件名?
如果您當前的命令起作用,簡單地把它改寫爲一個函數:
edit() { $EDITOR <(sed -e "s/\x1B\[[0-9;]*[JKmsu]//g" < "$1"); }; edit
然而,更好的方法是創建一個腳本,做你想做的事,並調用什麼。這允許其他程序調用編輯器而不將它傳遞到一個shell,而不是所有程序都這樣做。
另一種方法:
bash -c 'EDITOR <(sed -e "s/\x1B\[[0-9;]*[JKmsu]//g" < "$0")' color.js
\.........................................................../ \....../
command filename
我不明白 「爲什麼」?我假設「命令+文件名」約束意味着文件名中沒有空格 - 導致該約束的原因是什麼?感覺好像你已經省略了幾個重要的細節。 –
約束來自於這是一個墊片,它將被注入到編譯代碼中,我不能從文件名中的空格中進行更改。 –