杭州嵌入式培训
达内杭州嵌入式培训中心

13486356750

热门课程

Linux命令行的“瑞士军刀”

  • 时间:2015-11-26
  • 发布:杭州嵌入式培训
  • 来源:慕课社区


    达内嵌入式培训专家表示,linux命令行的“瑞士军刀”是指一句简单的命令就能完成其它高级语言大量代码才能完成的工作。

    一、通过sort/uniq获取文件内容的交集、合集和不同之处:假设有a、b两个文本文件,文件本身已经去除了重复内容。下面是效率最高的方法,可以处理任何体积的文件,甚至几个G的文件。比较一下,用Java来处理磁盘上文件的合并,会需要用多少行代码。

cat a b | sort | uniq > c   # c 是a和b的合集
cat a b | sort | uniq -d > c   # c 是a和b的交集
cat a b b | sort | uniq -u > c   # c 是a和b的不同

    二、汇总一个文本内容里第三列数字的和。比用Python来做快3倍并只需1/3的代码量:

awk ‘{ x += $3 } END { print x }’ myfile

    三、如果你想查看一个目录树里的文件的体积和修改日期,用下面的方法,相当于你每个目录做”ls -l”,而且输出的形式比你用”ls -lR”更可读:

find . -type f -ls

    四、使用xargs命令。这个命令非常的强大。注意每行上你可以控制多少个东西的执行。若是不确定是否正确的执行,先使用xargs echo。同样,-I{}也非常有用。代码如下

find . -name \*.py | xargs grep some_functioncat hosts | xargs -I{} ssh root@{} hostname

    五、假设你有一个web服务器日志,在某些行上有一些值,比如URL中的acct_id参数。如果你想统计每个acct_id的所有请求记录:

cat access.log | egrep -o ‘acct_id=[0-9]+’ | cut -d= -f2 | sort | uniq -c | sort -rn


上一篇:达内:13条实用的编程经验
下一篇:Linux 优雅使用的哲学

恭喜达内获得《产学合作协同育人项目合作伙伴奖》

中传学子参加达内Java培训,转身成为Java工程师月薪12.5K

职场求突破参加达内网络营销培训,获10万年薪成为营销达人

高中毕业不想把人生过成说明书,参加达内网络营销培训获得月薪8K

选择城市和中心
贵州省

广西省

海南省