linux 如何使用xargs和sed进行文件路径重命名?

plupiseo  于 2023-01-08  发布在  Linux
关注(0)|答案(1)|浏览(104)

我想替换文件路径一些字,但sed不工作。
例如:

echo "./src/main/java/com/abc" |xargs -i echo "mv {} `sed 's/abc/def/' <<< {}`"

实际输出为:

mv ./src/main/java/com/abc ./src/main/java/com/abc

我没想到

mv ./src/main/java/com/abc ./src/main/java/com/def
83qze16e

83qze16e1#

另一种(最简单的)方法,使用Perl's rename

$ rename -n 's@/abc$@/def@' ./src/main/java/com/abc
rename(./src/main/java/com/abc, ./src/main/java/com/def)

当输出看起来令人满意时,删除-n(又名dry-run)。

另一种方法是使用shel连接:

$ echo -n mv "./src/main/java/com/abc "; echo $(echo "./src/main/java/com/abc" | sed 's/abc/def/')

输出

mv ./src/main/java/com/abc ./src/main/java/com/def

相关问题