Linux 命令操作

2017-04-25 14:07:01 +08:00
 xinali

linux 下有办法将前一个命令的结果作为第二个命令的第一个参数吗?具体举例如下

ls | mv {第一个命令的结果} some_dir/
3804 次点击
所在节点    Linux
25 条回复
xinali
2017-04-25 14:10:10 +08:00
不小心重复创建了,不好意思
Tink
2017-04-25 14:12:12 +08:00
eg:

mv `ls` ..
scriptB0y
2017-04-25 14:13:32 +08:00
pank
2017-04-25 14:13:47 +08:00
xargs?
we3613040
2017-04-25 14:17:26 +08:00
xargs
nightcat
2017-04-25 14:18:05 +08:00
@scriptB0y 新技能 get
xinali
2017-04-25 14:19:27 +08:00
@scriptB0y 能够搜到结果,再发, OK ?
xinali
2017-04-25 14:24:27 +08:00
@Tink 这个可以实现我的需求,非常感谢,有一点前提是前一个命令中不含有``
Tink
2017-04-25 14:26:31 +08:00
@xinali #9 也可以有,转义一下
xia0pia0
2017-04-25 14:30:01 +08:00
xargs - build and execute command lines from standard input
bukip
2017-04-25 14:31:05 +08:00
|
sammo
2017-04-25 14:33:29 +08:00
mv $(ls ...)
`` 和 $() 同样效果
wizardoz
2017-04-25 14:33:34 +08:00
| 操作符是把上一个程序的输出作为下一个程序的输入,和楼主理解的参数不是一回事。

e=`ls`
mv ${e} /dst-dir/
这是作为参数
xinali
2017-04-25 14:40:44 +08:00
目前根据回答可以总结如下 4 种方法:
1. ls | xargs -i mv {} some_dir/ (使用 xargs 的-i 参数)
2. mv `ls` some_dir/
3. mv $(ls) some_dir/
4. e=`ls` => mv ${e} some_dir/
有别的方法也欢迎补充
EthanLiao
2017-04-25 14:49:56 +08:00
mkdir ~/test
cd ~/test
touch a
touch b
mkdir ~/test1
ls | xargs -n1 -I {} cp -a {} ~/test1
cd ~/test1
ls
xj998
2017-04-25 14:57:04 +08:00
搭楼求解一下
一般我们排序 hosts 文件
sort hosts.txt
是从左到右字符逐渐排序,那么

比如这个 cat hosts.txt
127.0.0.1 p.kjwx8.com
127.0.0.1 sta.jcjk0451.com
127.0.0.1 1.yhzm.cc
127.0.0.1 www.hao934.com
127.0.0.1 www.1680go.com
127.0.0.1 pc.quansj.cn
127.0.0.1 ad.xxguan.cn
127.0.0.1 pic.517m.cn
127.0.0.1 eee.ttyy888.co
127.0.0.1 www.716703.com
127.0.0.1 dp.559.cc
127.0.0.1 info.yitsoftware.com
127.0.0.1 ads.gionee.com
127.0.0.1 pdl.gionee.com
如何实现从最右边字符开始逐步往左字符排序?这个我看了很多教程,有个-k 参数,但没搞成功。求解!
araraloren
2017-04-25 15:22:17 +08:00
@xj998 简单的很
sort -k 2,1
就行了
lyao
2017-04-25 17:58:47 +08:00
percol 是个好东西
https://github.com/mooz/percol
hljjhb
2017-04-25 18:39:06 +08:00
ls | xargs mv -t dst_dir/

xargs 可以不用 -i
xj998
2017-04-25 22:58:07 +08:00
@araraloren 不行, sort -k 2,1 hosts 这个结果还是从左到右字符排序的。
无法从倒过来排序。
如何实现这个效果:
127.0.0.1 dp.559.cc
127.0.0.1 1.yhzm.cc
127.0.0.1 sta.jcjk0451.com
127.0.0.1 www.716703.com
127.0.0.1 www.hao934.com
127.0.0.1 p.kjwx8.com
127.0.0.1 pdl.gionee.com
127.0.0.1 ads.gionee.com
127.0.0.1 info.yitsoftware.com
127.0.0.1 www.1680go.com
127.0.0.1 pc.quansj.cn
127.0.0.1 ad.xxguan.cn
127.0.0.1 pic.517m.cn
127.0.0.1 eee.ttyy888.co

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

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

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

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

© 2021 V2EX