我只想搜索路径third_party/docker/rec/中的所有
*.*
文件,然后将它们传递给sed以替换字符串。 av_ 与一些_
找到合适的常规文件并传递给 sed 来执行字符串替换
我的目录内容在下面,我找不到它们来传递 sed 进行替换。
find third_party/docker/rec/.* -type f -maxdepth 3 -name '.*'
没有输出
Command> ls -ltr third_party/docker/rec/
total 40
drwxr-xr-x 4 alxr staff 128 Apr 26 10:16 example
-rw-r--r-- 1 alxr staff 143 Apr 26 10:16 constants.bzl
drwxr-xr-x 15 alxr staff 480 Apr 26 10:16 rules
-rw-r--r-- 1 alxr staff 6434 Apr 26 10:16 defs.bzl
drwxr-xr-x 22 alxr staff 704 Apr 26 10:16 base_images
-rw-r--r-- 1 alxr staff 0 Apr 26 10:47 BUILD
-rw-r--r-- 1 alxr staff 0 Apr 26 10:47 BUILD-e
-rw-r--r-- 1 alxr staff 40 Apr 26 10:47 OWNERS
-rw-r--r-- 1 alxr staff 40 Apr 26 10:47 OWNERS-e
找到后运行命令。
Command> sed -i '' -e 's/av_/product_/g' third_party/docker/rec/* `find third_party/docker/rec/.* -type f -maxdepth 0 -print0`
输出
sed: third_party/docker/rec/base_images: in-place editing only works for regular files
想通了..
归功于此链接在 Mac 和 Linux 上的文本文件中递归搜索和替换
find third_party/docker/rec/ -type f -name 'BUILD' -exec sed -i '' s/av_/maglev_/g {} +