分享一些简单有用的命令行?

2010-12-04 09:41:52 +08:00
 xinzhi
命令行很高效,不会自己写,收藏一些很会很受用的。前几天在上传一些图片,批量上传支持jpg格式的图片,jpeg就不行,于是找到这个命令:

ls | grep jpeg | awk -F'.' '{print $1}'|xargs -i mv {}.jpeg {}.jpg
(Twitter上有回复:With GNU Parallel (http://nd.gd/0s) you can do: ls | grep jpeg | parallel mv {} {.}.jpg)

到文件夹下面,运行一下,所有jepg后缀都会更新为jpg。就在刚才,到论坛直接ctrl+s保存一帖子的图片收藏,下载回来附件后缀都是bin,于是命令行又用上了:

ls | grep bin | awk -F'.' '{print $1}'|xargs -i mv {}.bin {}.jpg

.bin又变成预期的.jpg,省去一个一个文件重命名的麻烦;当然也比用某些软件方便得多。

此类短小精悍的命令,还有不少,收藏分享吧!
4128 次点击
所在节点    分享发现
8 条回复
vayn
2010-12-04 10:01:10 +08:00
昨天刚发现一个二进制时钟:

read -a A<<<".*.**..*....*** 8 9 5 10 6 0 2 11 7 4";for C in `date +"%H%M"|fold -w1`;do echo "${A:${A[C+1]}:4}";done

用处不是很大……但是很好玩:D
jsy1999
2010-12-04 10:20:03 +08:00
@xinzhi 在哪里用的 ?dos?
xinzhi
2010-12-04 10:23:22 +08:00
@jsy1999 UNIX类。我用Linux,Mac也许也行。
est
2010-12-04 10:46:59 +08:00
Windows下直接

ren *.jpeg *.jpg
ren *.bin *.jpg
laiwei
2010-12-04 10:54:15 +08:00
mark 一下
不过如果形如a.bak.jpeg 就会出错
Kymair
2010-12-04 11:03:50 +08:00
ratazzi
2010-12-04 11:07:45 +08:00
find . -name "*.jpeg" -exec perl -e '$i = "{}"; $new = $i; $new =~ s/jpeg/jpg/;print "mv $i $new\n"' \; | bash
这样Mac,Linux 都可以,Mac 下的好多命令都不是 GNU 版的,参数差别挺大
9hills
2010-12-04 13:55:44 +08:00
@laiwei lz用awk以'.'为分隔符采第一个字段,自然会碰到这种问题

用的最广还是用do循环+mv命令来做

for i in *.jpeg;do mv "$i" "${i%.jpeg}.jpg" ;done

这个随便改一下就能做很多事情,比如将 xx-temp.txt 改名为 xx-release.bin 之类的
重点在于%后面是减掉的部分,}右边是加上的部分。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/5365

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX