linuxshell
gt; newtext.file
awk: awk 用来从文本文件中提取字段.缺省地,字段分割符是空格,可以使用-F指定其他分割符. cat file.txt | awk -F, ''{print $1 "," $3 }''这里我们使用,作为字段分割符,同时打印 第一个和第三个字段.如果该文件内容如下: Adam Bor, 34, IndiaKerry Miller, 22, USA 命令输出结果为:Adam Bor, IndiaKerry Miller, USA 2) 概念: 管道, 重定向和 backtick 这些不是系统命令,但是他们真的很重要. 管道 (|) 将一个命令的输出作为另外一个命令的输入. grep "hello" file.txt | wc -l 在file.txt中搜索包含有”hello”的行并计算其行数. 在这里grep命令的输出作为wc命令的输入.当然您可以使用多个命令. 重定向:将命令的结果输出到文件,而不是标准输出(屏幕). > 写入文件并覆盖旧文件 >> 加到文件的尾部,保留旧文件内容. 反短斜线 使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数. 命令: find . -mtime -1 -type f -print 用来查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件.如果您 想将所有查找到的文件打一个包,则可以使用以下脚本: #!/bin/sh # The ticks are backticks (`) not normal quotes (''): tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print` 3) 流程控制 1.if "if" 表达式 如果条件为真则执行then后面的部分: if ....; then .... elif ....; then .... else .... fi 大多数情况下,可以使用测试命令来对条件进行测试.比如可以比较字符串、判断文件 是否存在及是否可读等等… 通常用" [ ] "来表示条件测试.注意这里的空格很重要.要确保方括号的空格. [ -f "somefile" ] :判断是否是一个文件 [ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限 [ -n "$var" ] :判断$var变量是否有值 [ "$a" = "$b" ] :判断$a和$b是否相等 执行man test可以查看所有测试表达式可以比较和判断的类型. 直接执行以下脚本: #!/bin/sh if [ "$SHELL" = "/bin/bash" ]; then echo "your login shell is the bash (bourne again shell)" else echo "your login shell is not bash but $SHELL" fi 变量$SHELL包含了登录shell的名称,我们和/bin/bash进行了比较. 快捷操作符 熟悉C语言的朋友可能会很喜欢下面的表达式: [ -f "/etc/shadow" ] && echo "This computer uses shadow passwors" 这里 && 就是一个快捷操作符,如果左边的表达式为真则执行右边的语句. 您也可以认为是逻辑运算中的与操作.上例中表示如果/etc/shadow文件存在 则打印” This computer uses shadow passwors”.同样或操作(||)在shell编程中也是 可用的.这里有个例子: #!/bin/sh mailfolder=/var/spool/mail/james [ -r "$mailfolder" ]'' ''{ echo "Can not read $mailfolder" ; exit 1; } echo "$mailfolder has mail from:" grep "^From " $mailfolder 该脚本判断mailfolder是否可读.如果可读则打印该文件中的"From" 一行.如果不可读 则或操作生效,打印错误信息后脚本退出.这里有个问题,那就是我们有两个命令: -打印错误信息 -退出程序 我们使用花括号以匿名函数的形式将两个命令放到一起作为一个 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |