如何在没有备份文件的情况下覆盖sed中的内容
How to overwrite the contents in the sed, without having backup file
我有这样的命令:
sed -i -e '/console.log/ s/^\/*/\/\//' *.js
注释掉所有 console.log
语句。但是有两件事
- 它像
test.js-e
一样保留备份文件,我不想那样做。
- 说我想把同一个进程递归到文件夹,怎么办?
查看sed的帮助时,-i
取了一个后缀作为备份,
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
输出备份似乎是 samefile + -e
这是你发送的第二个参数,尝试删除 space 看看是否可行
sed -ie '/console.log/ s/^\/*/\/\//' *.js
至于递归,可以使用find
和-exec
或xargs
,请修改find命令并在运行之前测试exec
find -name 'console.log' -type f -exec sed -ie '/console.log/ s/^\/*/\/\//' *.js \;
在这种特殊情况下,您不必使用 -e
选项,因为它没有必要。这将解决您的 1st
问题(因为 -e
似乎是 -i
选项的后缀)。
对于 2nd
部分,您可以尝试这样的操作:
for i in $(find . -type f -name "*.js"); do sed -i '/console.log/ s/^\/*/\/\//' $i; done;
使用 find 递归查找所有 .js
个文件并进行替换。
从你原来的 post 我猜你只是想做一个 C 风格的注释,像这样:
/*
到双反斜杠样式,如:
//
对吧?
然后你可以用这个命令
find . -name "*.js" -type f -exec sed -i '/console.log/ s#^/\*#//#g' '{}' \;
请注意:
在 sed 中,拆分字符通常是 /
但是如果您发现当替换或匹配字符串包含 /
时 Escape 很烦人。您可以根据需要将拆分字符更改为#
或|
,我发现它非常有用。
如果你确实想做我推测的那样,请确保你应该转义字符 *
,因为正则表达式 /*
的组合只是意味着匹配一个/
出现一次或多次或 none 的模式,将匹配所有内容,非常危险 !
我有这样的命令:
sed -i -e '/console.log/ s/^\/*/\/\//' *.js
注释掉所有 console.log
语句。但是有两件事
- 它像
test.js-e
一样保留备份文件,我不想那样做。 - 说我想把同一个进程递归到文件夹,怎么办?
查看sed的帮助时,-i
取了一个后缀作为备份,
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
输出备份似乎是 samefile + -e
这是你发送的第二个参数,尝试删除 space 看看是否可行
sed -ie '/console.log/ s/^\/*/\/\//' *.js
至于递归,可以使用find
和-exec
或xargs
,请修改find命令并在运行之前测试exec
find -name 'console.log' -type f -exec sed -ie '/console.log/ s/^\/*/\/\//' *.js \;
在这种特殊情况下,您不必使用 -e
选项,因为它没有必要。这将解决您的 1st
问题(因为 -e
似乎是 -i
选项的后缀)。
对于 2nd
部分,您可以尝试这样的操作:
for i in $(find . -type f -name "*.js"); do sed -i '/console.log/ s/^\/*/\/\//' $i; done;
使用 find 递归查找所有 .js
个文件并进行替换。
从你原来的 post 我猜你只是想做一个 C 风格的注释,像这样:
/*
到双反斜杠样式,如:
//
对吧? 然后你可以用这个命令
find . -name "*.js" -type f -exec sed -i '/console.log/ s#^/\*#//#g' '{}' \;
请注意:
在 sed 中,拆分字符通常是
/
但是如果您发现当替换或匹配字符串包含/
时 Escape 很烦人。您可以根据需要将拆分字符更改为#
或|
,我发现它非常有用。如果你确实想做我推测的那样,请确保你应该转义字符
*
,因为正则表达式/*
的组合只是意味着匹配一个/
出现一次或多次或 none 的模式,将匹配所有内容,非常危险 !