如:
#ls
aa.war bb.war cc dd
#ls -l $1 |awk '/^d/ {print $NF}'|grep -i .war
aa.war bb.war
想要将筛选出来的目录aa.war bb.war重命名成aa bb请问如何实现?
以下是我写的一个函数
function lookup(){
i=0
list=()
for j in `ls -l $1 |awk '/^d/ {print $NF}'|grep -i .war`
do
list[$i]="$j"
i=`expr $i + 1`
done
return 0
}
echo ${list[@]}
shell中如何使ls -l $1 |awk '/^d/ {print $NF}'|grep -i .war查到的结果重命名成没有.war的目录名
答案:2 悬赏:40 手机版
解决时间 2021-01-27 17:58
- 提问者网友:溺爱和你
- 2021-01-26 19:11
最佳答案
- 五星知识达人网友:有你哪都是故乡
- 2021-01-26 19:22
function rename(){
while read Line
do
echo mv $Line ${Line%.war}
# mv $Line ${Line%.war}
done
}
find -type d |grep "[.]war"|rename实际运行时把注释行的注释取消。
使用 find 命令来获取文件夹路径,rename 自定义函数完成重命名。
重命名的重点是 while read Line 循环, 不停的从标准输入读取行。每行对应一个文件
${Line%.war} 其中%号 表示 从后面删除 最短的匹配。
更详细的${} 扩展用法可以在 man bash 中查询Parameter Expansion章节。
while read Line
do
echo mv $Line ${Line%.war}
# mv $Line ${Line%.war}
done
}
find -type d |grep "[.]war"|rename实际运行时把注释行的注释取消。
使用 find 命令来获取文件夹路径,rename 自定义函数完成重命名。
重命名的重点是 while read Line 循环, 不停的从标准输入读取行。每行对应一个文件
${Line%.war} 其中%号 表示 从后面删除 最短的匹配。
更详细的${} 扩展用法可以在 man bash 中查询Parameter Expansion章节。
全部回答
- 1楼网友:白昼之月
- 2021-01-26 20:20
我。。知。。道
加。。我。。私。。聊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯