[待总结整理]linux技能


  • 将ls的结果放在一行里显示:

ls | tr "\n" " " | <whatever you like>
参考: https://serverfault.com/questions/105838/make-ls-print-it-all-on-one-line-like-in-terminal


  • 将ls的结果作为参数

./averageDuration $(ls 2017*.kwy)
反而 下面这句行不通,暂时倒不知为什么.其中averageDuration是一个c++程序,里面的main可以接收参数
ls 2017*.kwy |./averageDuration

  • 用sed提取指定行 http://www.commandlinefu.com/commands/view/9890/print-all-lines-between-two-line-numbers
  • 用sed删掉指定行(某行,某行到某行,待某字符的行等):http://ccm.net/faq/1451-delete-lines-from-a-file-using-sed
  • sed的用法,一个整理得比较好的http://www.yourownlinux.com/2015/04/sed-command-in-linux-append-and-insert-lines-to-file.html
  • 对一系列文件重命名为到序列数字的名字:https://stackoverflow.com/questions/880467/renaming-a-set-of-files-to-001-002-on-linux
i=1; temp=$(mktemp -p .); for file in image*
do
mv "$file" $temp;
mv $temp $(printf "image_%0.3d.jpg" $i)
i=$((i + 1))
done  

https://stackoverflow.com/questions/9605232/how-to-merge-every-two-lines-into-one-from-the-command-line

  • 要将一个命令的输出结果传给一个函数,要记得加$,如下
arg=$(ls *ep.out);./jumpstartFromAveraged.py $arg 
但arg=(ls *ep.out);./jumpstartFromAveraged.py $arg 就不行,这样 后面给py的arg就是ls *ep.out,而不是ls的结果.
而ls *ep.out|./jumpstartFromAveraged.py也是行不通的
  • 安装软件,tar.gz包的方法
tar -zxvf file.tar.gz
然后进入文件夹看install说明安装
  • 一个百思不得其解的问题:
sed -i '/plot \\/ a \"200ep.out\"  title \" rrr\" ls 2,\\' MygraphTest.gnuplot
这句正常,但下一句(就是把单引号换成双引号):
sed -i "/plot \\/ a \"200ep.out\"  title \" rrr\" ls 2,\\" MygraphTest.gnuplot
总是出错:sed: -e expression #1, char 43: unterminated address regex
怎么都搞不清原因在哪
另外,我想定义dir=200ep,然后把那句里面的200ep换成 $dir 也总是行不通,暂时还不知道怎么解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值