cutgrepawksortsedhead ailcatpastewcuniqdiffpatch r
第一、
扣取列1.#cut
-d:
-f 1,3,4 file
选项:-d 定义分隔符-f 指定扣取的列的位置#cut
-c0-6 file选项:-c 定义扣取从开头算起的6个字符
第二、
截取行2.#grep
-i -v "
^system" file
选项: -i 表示忽略大小写-v 表示不包括-n 表示显示结果所在行号-E 表示支持扩展的正则表达式^ 表示以“system”开头$ 表示以“关键字”结尾^$ 表示空行
. 表示一个任意字符* 表示前一个字符重复任意次[] 匹配可能得字符#grep -Ev "^#
|^$" /etc/postfix/main.cf关键字:以
#开始或(|)空行--------其中 “|” 需要-E 参数的支持#grep -E [0-9]abc$ :关键字表示--以"abc"结尾且之前有一个数字 [0-9]{11} :关键字表示--11位数字 [0-9]{1,3} : 关键字表示--1-3位数字#egrep 是扩展功能的grep 例: egrep "2|5" 1.txt 列出还有2或5的行 egrep "33(2|5)" 1.txt 列出包含33,而且后边跟的是2或者5的行 #grep 进阶grep -h select * 列出当前目录下所有包含select关键字的行grep -l select * 列出当前目录下所有包含select关键字的文件名 -----------------------------正则表达式
第三、
文件内容提取3.#awk -F --------用于文件内容分段提取如:显示系统中UID=0的用户名#awk -F :
"$3==0{print $1}
"/etc/passwd如显示系统中密码为空的用户名#awk -F : "length($2)==0 {print $1}" /etc/shadow#awk "{print $9}"
当没有指定分隔符时,默认以空格分隔,且多个连续空格会认为是一个空格。查看/etc 目录中属主是 root 的文件名称# ll /etc | awk "{if ($3=="root") print $9}"awk
引用变量| # awk "$1== " "$a " " {print $0} " file.txt |
##########################################
-----需要注意:当用if判断时 条件在{}中 当不用if判断是 条件在‘’内,{}外################################################条件表达:awk -F: "{ if ($3>499) print $1}" /etc/passwdawk -F: "{ if ($3==500) print $1}" /etc/passwdawk -F: "{ if (length($2)==0) print $1 }" /etc/passwdawk -F: "{ if ($1==""$a"") print $1}" /etc/passwd 例:扣取文件名[root@localhost /]# ll | awk "{print $9}"
----注意:wak中的判断 “==” 等于 ; “=”赋值----awk 引用变量(使用选项 -v)例:| # awk "$1== " "$a " " {print $0} " file.txt |
#!/bin/bashread -p "please input the UID :" uidawk -F : -v ID=$uid " $3==ID {print $1}" /etc/passwd
第四、
排序4.#sort -t : -k 3 -nruf file
选项:-t 定义分隔符-k 指定比较的列的位置-n 以数值的方式比较 例3 和14 比较:如果有-n 则14>3 ,如果没有-n,则以字符方式比较3>
1‘4’(比较首字母)-r 反向排序 默认是升序,即由小到大-u 删除重复行 --uniq-f 排序时忽略大小写
第五、
统计5.#wc -l -w file
选项:-l 统计行数-w 统计单词数
第六、
比较6.#diff file1 file2 > patch.txt 生成补丁文件#patch file1(旧文件) < patch.txt 为老版本文件打补丁
第七、字符替换7.#tr “原有字符” “目标字符” file#tr "a-z" “A-Z” file---------tr 用于单个字符的替换
第八、流文件编辑器---sed(不是交换模式,可用于脚本中的配置文件修改)语法: sed [选项]
"script" file-------script 是能够被sed理解的命令 ,包含:‘<行描述><动作>’-------file 是cmd进行操作的一些文件 #sed -ire " s/替换前内容/替换后内容/g" file
选项:
-i 修改源文件并保存。没有改选项时,修改后内容显现都屏幕上,但是源文件并没有改变
-r 支持扩展的正则表达式(用以支持比较复杂的正则表达式)-e 以选项中指定的script来处理输入的文本文件(此处的脚本 ” s“)
script 结构 :"行描述[/正则表达式/]动作"例:删除 # sed "5d" filename 删除第5行,显示其他行 #sed "1,3d" filename 删除1-3行,显示其它行 #sed "4,$d" filename 删除从第4行到末行,显示其它行 替换 #sed "s/222/333/g" filename 将所有的222取代为333 转换 #sed "1,3y/[a-z]/[A-Z]/" filename -------正则表达式. --用于匹配任意一个字符* --用于匹配它前面字符的任意多次^ --用于匹配行首$ --用于匹配行尾[char] --用于匹配括号字符集中的某一个字符 []:匹配符 {} :枚举[^char] --用于匹配没有在char字符集中的字符 --用于转义某个特殊含义的字符<the> --用于完整匹配单词“the”,不会匹配“them”,"there","other" /^$/ 表示空行/^.*$/ 表示一整行/*/ 表示一个或多个空格[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3} 表示ip地址--------动作-s 替换指定内容#sed -e -i "s/defaults/hello/g" /etc/file
-d 删除指定行 #sed -i -e "1,3d" /etc/file (删除1--3行)#sed -e -i "/^#/d" /etc/file (删除以#开头的行)
-i 匹配行前插入
-a 匹配行后附加
-c 匹配行替换Ubuntu下U盘文件只读的解决办法CentOS 6.3安装Fcitx小企鹅中文输入法相关资讯 Linux基础学习 Linux操作命令
- Linux中命令链接操作符的十个最佳 (01/12/2014 08:42:36)
- Linux 系统添加操作记录审计 (01/29/2013 16:40:23)
- 如何学习Linux系统命令和工具 (01/03/2013 13:24:48)
| - Linux下关于文件&&目录操作的命令 (11/02/2013 10:56:06)
- Linux基础学习:文件的隐藏属性 (01/18/2013 16:28:25)
- Linux-x86_64 Error: 28: No space (12/27/2012 18:41:19)
|
本文评论 查看全部评论 (0)