LinuxTips-从命令行到脚本

标签: linuxtips 命令行 脚本 | 发表时间:2012-08-11 12:28 | 作者:iTech
出处:http://www.cnblogs.com/itech/

 

 

对于Linux的中的一些问题,一般地我们可以通过以下的思路来解决:

1)使用Linux提供的很多的小工具和管道来处理;

2)如果需要使用多条命令,或需要逻辑判断,考虑使用sh,sh除了能直接使用Linux的小工具外,还可以进行很多的逻辑和流程控制;

3)如果需要很多的字符串处理,问题也比较复杂,考虑使用perl,在perl中可以方便地调用Linux的小工具,但是又不缺强大的字符串处理能力;

4)最后如果可以称的上是一个小的项目的问题,使用python,python与高级语言更加相似,更易于阅读和维护;

 

例如对于问题:修改一个目录和子目录下的所有的*.log为*.LOG

 

1) 使用Linux的小命令

查找到所有的*.log文件:find . -iname '*.log' -type f -print
替换得到新的文件名:echo $filename | sed s/\.log$/\.LOG/i
修改文件的名字:mv $oldname $newname

 

2) 转化为sh脚本(csh)

#!/bin/csh -x
cd $1
set files = `find . -iname '*.log' -type f -print`

foreach f ($files)
  if ( $f !~ "*.LOG") then
    set newf = `echo $f | sed s/\.log\$/\.LOG/i`
    mv $f $newf
  endif
end

 

3) 牛逼作法

使用使用一条命令加sh的while来实现:

find . -iname '*.log' -type f -print | while read fname; do echo mv $fname ${fname/.log/.LOG/}; done | bash -x

 

完!

 

本文链接

相关 [linuxtips 命令行 脚本] 推荐:

LinuxTips-从命令行到脚本

- - 博客园_iTech's Blog
对于Linux的中的一些问题,一般地我们可以通过以下的思路来解决:. 1)使用Linux提供的很多的小工具和管道来处理;. 2)如果需要使用多条命令,或需要逻辑判断,考虑使用sh,sh除了能直接使用Linux的小工具外,还可以进行很多的逻辑和流程控制;. 3)如果需要很多的字符串处理,问题也比较复杂,考虑使用perl,在perl中可以方便地调用Linux的小工具,但是又不缺强大的字符串处理能力;.

Firebug Console API 与命令行

- 红茶 - WEB前端开发
前几天有人问我关于firebug console的问题,其实我平时用的最多也就是console.log,相当于alert(). 还真没深入了解其他的api,今天在jsmix上看到了,所以转载过来分享一下 Console API 当打开 firebug (也包括 Chrome 等浏览器的自带调试工具),window 下面会注册一个叫做 console 的对象,它提供多种方法向控制台输出信息,供开发人员调试使用.

命令行界面设计

- 海洋 - 笨兔兔
虽然已存在大量关于图形用户界面(GUIs)设计的文章,可是介绍命令行界面(CLIs)设计的却很少. 本文尝试介绍几个关于CLI设计最重要的准则. 本文假设该命令行工具用语 *nix 系统(例如 GUN/Linux、BSD、Mac OS X,UNIX),并且会频繁地参考这些系统中的常用工具. 非交互式程序在调用后不再需要任何用户干预.

feh: 命令行图片查看器

- Grotteschi - LinuxTOY
看到有人询问命令行下图片查看器,特将自己使用的 feh 分享一下. 支持多图幻灯片浏览,可以读取文件夹以及播放列表. 全屏模式支持,并且可以像数码相框一样定时更换. 在指定浏览某路径时,会自动忽略非图片文件,并且只将当前打开的图片加载入内存. 当然,经过简单的配置,feh 也可以和图形化的文件管理器如 Nautilus 和 Dolphin 协作,做为默认图片查看器.

28个Unix/Linux的命令行神器

- - 酷壳 - CoolShell.cn
下面是 Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具( 原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的. 这些工具都非常不错,希望每个人都知道. 本篇文章还在 Hacker News上被讨论,你可以过去看看. 我以作者的原文中加入了官网链接和一些说明.

命令行是你的至交好友

- - 搜索引擎技术博客
英文原文,翻译: 开源中国. 命令行既可以成为你的至交好友,又可能成为你最大的敌人. 它关键取决于你怎样用它,以及用它来做什么. 如果你还是像大部分人一样畏惧使用命令行界面,那么这篇文章定会让你受益匪浅. 是的,它是在黑色屏幕上的白色(或者绿色)的显示区域,是神秘的文字流和奇怪的命令执行的地方. 我知道很多大师级的 程序员从来不使用命令行界面;然而,我也知道一些初级用户用命令行来做所有的事而不是用图形界面.

Linux命令行里的“瑞士军刀”

- - 外刊IT评论
这里说的“瑞士军刀”是指那些简单的一句命令就能完成其它高级语言一大片代码才能完成的工作. 下面的这些内容是 Quora网站上Joshua Levy网友的总结:. 通过sort/uniq获取文件内容的交集、合集和不同之处:假设有a、b两个文本文件,文件本身已经去除了重复内容. 下面是效率最高的方法,可以处理任何体积的文件,甚至几个G的文件.

Linux命令行文本处理工具

- - CSDN博客系统运维推荐文章
这是看Linuxcast的笔记. Linux命令行文本处理工具. 命令grep用以基于关键字搜索文本. 命令格式grep "关键字",并且通常和管道一起使用,如ls -l | grep "test". -i 在搜索的时候忽略大小写. -Ax 在输出的时候包含结果所在行之后(after)的指定行数. -Bx 在输出的时候包含结果所在行之前(before)的指定行数.

grub命令行启动系统

- - CSDN博客系统运维推荐文章
今天倒腾服务器,修改grub.conf文件后导致系统起不来了. 后来就学习了一下如何从grub命令启动. grub引导其实挺简单的,只要简单地几步就可以了. 一、指定/boot所在的分区. #指定第一块硬盘的第一个分区. 这个root (hd[0,n],y)是可以省略的,如果省略了,我们要在kerenl 命令中指定.

mysql backup 脚本

- - ITeye博客
网上备份脚本很多,但考虑都不周全. 保证创建备份文件只能是创建者跟root可以访问,其他用户没有权限,保证了数据库备份的安全. 上面脚本是负责备份的份数管理,. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.