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

一、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
發佈了66 篇原創文章 · 獲贊 25 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章