我想替换文件路径一些字,但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
83qze16e1#
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)。
-n
dry-run
$ echo -n mv "./src/main/java/com/abc "; echo $(echo "./src/main/java/com/abc" | sed 's/abc/def/')
1条答案
按热度按时间83qze16e1#
另一种(最简单的)方法,使用Perl's
rename
:当输出看起来令人满意时,删除
-n
(又名dry-run
)。另一种方法是使用shel连接:
输出