我正在尝试使用等效命令替换像“vim”这样的编辑器命令,该命令在调用编辑器命令之前从输入文件中删除颜色代码。该脚本将由bash调用,并且必须符合command + ' ' + filename
格式,因此尾随)
会给我带来麻烦:
EDITOR <(sed -e "s/\x1B\[[0-9;]*[JKmsu]//g" < color.js)
如果没有尾随)
,你能想到一种方法吗?一切都必须在文件名之前?
答案 0 :(得分:2)
如果当前命令有效,只需将其重写为函数:
edit() { $EDITOR <(sed -e "s/\x1B\[[0-9;]*[JKmsu]//g" < "$1"); }; edit
但是,更好的方法是创建一个执行您想要执行的操作的脚本并调用它。这允许其他程序调用编辑器而不通过shell传递它,而不是所有程序都这样做。
答案 1 :(得分:1)
另一种方法:
bash -c 'EDITOR <(sed -e "s/\x1B\[[0-9;]*[JKmsu]//g" < "$0")' color.js
\.........................................................../ \....../
command filename