RH254-第二十七节-脚本之常用diff.cut.sort.grep.tr命令(一)

来源:互联网 发布:英语学霸软件 编辑:程序博客网 时间:2024/06/07 20:56

一、rpm


1.查询所有已安装的软件包

rpm -qa

2.查询某个,或某几个软件包
rpm -q  查询的包名1  查询的包名2……

[虚拟机28/home/mis>rpm -q gcc make
gcc-4.1.3-29
make-3.81-23

也可以 rpm-qa|grep  查询的包名

3. 按照不同标签来查看软件包信息
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n'    \软件包名1 软件包名2……
如下:
#rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n'   \gcc  libxp  systat  make
gcc-4.1.3-29(i586)
package libxp is not installed
package systat is not installed
make-3.81-23(i586)

此处:1.{}里都是可以更换的功能标签。
            2.各个功能标签间的“-”就是运行完命令后出现的“-”,相当于分隔符
            3.\n是用来换行的。

4.查看系统中占用空间最大的软件包
#rpm -q -a --qf "%{NAME}-%{SIZE}\n" |sort -nr +1|head -1
5.用rpm命令安装软件包
#rpm -ivh 软件包名
6.用rpm卸载安装错误的软件包

#rpm -e 软件包名


二、diff

比较两个文件的内容,diff程序的输出被称为补丁 (patch)

# diff -u file file1 > file.path          ##将补丁放入file.path

利用补丁来更新file

# patch file file.path

若patch命令没有安装,就用

# yum install patch

三、grep

    -i:忽略大小写
    -n:显示文件中所在行号
    -c:显示结果的总行数
    -r:递归
    -v:匹配上的不显示
    ^root:行首有root的
    root$:行尾有root的
显示在行中的root:grep root passwd | grep -v ^root | grep -v root$ 

四、cut

    -d : -f 1 passwd:只显示passwd的第一列
    -d ; -f 1-3 passwd:显示passwd的1-3列
显示ifconfig eth0的ip:
ifconfig eth0  | grep inet | grep inet6 -v | awk -F ' ' '{print $2}'
ifconfig eth0  | grep inet | grep inet6 -v | cut -d ' ' -f 10

五、sort

    file:默认排每行首字母
    -n file:数字排序
    -rn file:数字倒序
    -run file:数字倒序并不显示重复的
    -rn file | uniq 显示没行,不重复
    -rn file | uniq -c:显示没行,不重复并且统计出现次数
    -rn file | uniq -d:只显示重复的行
    -rn file | uniq -u:只显示不重复的行
    -t : -k 3 file:以:为分隔符,给第三列排序
    -t : -k 3 -n file:以:为分隔符,给第三列排序

六、tr

   

tr命令可以对来自标准输入的字符进行替换、压缩和删除。

来自: http://man.linuxde.net/tr
tr命令可以对来自标准输入的字符进行替换、压缩和删除。

来自: http://man.linuxde.net/tr
通过使用tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr所能够做的。 


   tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
    带有最常用选项的tr命令格式为:
tr -c -d -s ["string1_to_translate_from"]["string2_to_translate_to"] < input-file
这里:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

2、字符范围
指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
\a Ctrl-G 

铃声\007
\b Ctrl-H  退格符\010
\f Ctrl-L  走行换页\014
\n Ctrl-J  新行\012
\r Ctrl-M  回车\015
\t Ctrl-I  tab键\011
\v Ctrl-X  \030

示例:

将文件file中出现的"abc"替换为"xyz"

 
# cat file | tr "abc" "xyz" > new_file
阅读全文
0 0