sed使用小命令及課后作業

Stream EDitor,  行編輯器

sed 是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space ),接著用sed 命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。Sed 主要用來自動編輯一個或多個文件, 簡化對文件的反復操作, 編寫轉換程序等

實用選項及用法:


sed -n “p” f1 :只打印地址p一次 (不加n會打印兩次)

sed -n “2p” f1:只打印第二行內容
cat -n |sed -n “3,10p”f1 :顯示3,10行內容
cat -n |sed -n “3,10p”f1 顯示3,13行內容
cat -n |sed -n ‘/root/p’ f1:包含root的行(使用正則表達式模式)
sed -n ‘/^/ ,/ ^/p’ f1 :顯示已某個單詞開頭到已某個單詞開頭的行 鉚釘行首
sed -n ’10 ,/ ^/p’ f1 :顯示第十行到某個單詞開頭的行
sed -n ‘1~2p’ f1 :打印奇數行
sed -n ‘2~2p‘ f1:打印偶數行
sed ‘2~2d’ f1 :刪除偶數行
sed ’20a…….’f1 :在第20行后面增加內容…….
sed ’20a\ …….\n,,,,,,,,,,’f1 :在第20行后面增加內容…….并且前面顯示以空格分開,并且進行換行再顯示,,,,,
sed ’10,20i\ …….\n,,,,,,,,,,’f1:在第10-20行前面增加內容…….并且前面顯示以空格分開,并且進行換行再顯示,,,,,
sed ’10,20c\ …….\n,,,,,,,,,,’f1:使用后面的三段符號替代10-20行內容
sed -i.conf ’10d’ f1 :刪除第10行并提前備份f1 文件名稱一個以.cof結尾,如果不在i后面加.conf 那直接破壞文件,刪除第十行并保存。
sed ‘1-6=’ :1-6行打印行號
sed -n ‘2~2!p‘ f1 :取反,只取單數
sed ‘s/root/ROOT/g’ f1:把文件中的root全部替換成大寫,不加g只替換第一個
sed -n ‘s/root/ROOT/gpw /root/f22’ f1:把文件中的root全部替換成大寫,并把顯示行打印出來,并把更改的行重新保存到一個文件里面。
sed ‘/^$/d’ :刪除空行

應用作業

1 、刪除centos7 系統/etc/grub2.cfg 文件中所有以空白開頭的行行首的空白字符

#cat f3 | sed ‘s/^[[:space:]]\+//g’
2 、刪除/etc/fstab 文件中所有以# 開頭,后面至少跟一個空白字符的行的行首的# 和空白字符
cat /etc/fstab |sed -r ‘s@^#[ :space: ]?@@g’
3 、在centos6 系統/root/install.log 每一行行首增加#號 號
#cat /root/install.log|sed -r “s/(^[^#])/#&/”
4 、在/etc/fstab 文件中不以# 開頭的行的行首增加#號 號
cat /etc/fstab|sed -r “s/(^[^#])/#&/”
5 、處理/etc/fstab 路徑, 使用sed 命令取出其目錄名和基名
#echo ‘/etc/fstab’ |sed -r ‘s@(/.*/)(/?.*)@\2@g’
echo ‘/etc/fstab’ |sed ‘s@/.*/@@g’
echo ‘/etc/fstab’ |sed -r ‘s@(/.*/)?.*@\1@g’
6 、利用sed 取出ifconfig 命令中本機的IPv4 地址
# ifconfig eth0 |sed -n ‘2p’ |sed ‘s/^.*addr://’|sed ‘s/B.*//’
7 、統計centos 安裝光盤中Package 目錄下的所有rpm 文件的以 以. 分隔倒數第二個字段的重復次數
ls /run/media/root/CentOS\ 7\ x86_64/Packages/ |rev|cut -d. -f2 |rev|sort |uniq -c
ls /run/media/root/CentOS\ 7\ x86_64/Packages/ |sed -r ‘s@.*\.(.*)\.rpm@\1@’|sort|uniq -c
8 、統計/etc/init.d/functions 文件中每個單詞的出現次數,并排序(用grep 和sed 兩種方法分別實現)
cat /etc/init.d/functions |grep -o ‘.’|sort|uniq -c
cat /etc/init.d/functions |sed ‘s@.@\n&@g’|sort|uniq -c

原創文章,作者:fujunlong,如若轉載,請注明出處:http://www.www58058.com/71326

(0)
fujunlongfujunlong
上一篇 2017-03-18 18:18
下一篇 2017-03-19

相關推薦

  • Linux運維實戰之2-1:文件管理類命令

    本次博文我們來學習下Linux系統中使用頻率比較高的文件管理類命令哈。 主要內容:     1、文件管理的概述;     2、文件管理命令詳解; 上次博文,我們學習了Linux的哲學思想,其中之一就是:Linux中一切皆文件。由此,文件管理就是Linux系統的重要功能之一。 一、…

    Linux干貨 2016-11-06
  • N25_第一周博客作業

    一、計算機組成及其功能      1、CPU:          運算器:計算功能,對數據進行加工處理的部件。          控制器:負責從存儲器讀取指令,控制計算器之間的運行狀態和結果;     &nbs…

    Linux干貨 2016-12-04
  • N25第五周博客作業

    第五周博客作業   1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;   2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;   3、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行; &nbs…

    Linux干貨 2016-12-28
  • RAID學習總結

    RAID(Redundant Array of Independent Disks): 定義:獨立硬盤冗余陣列,舊稱廉價磁盤冗余陣列(Redundant Array of Independent Disks),簡稱磁盤陣列。 原理:把多個相對便宜的硬盤組合起來,成為一個硬盤陣列組,使其性能達到甚至超過價格昂貴,容量巨大的硬盤。 優勢: RAID在容量和管理上…

    Linux干貨 2016-08-22
  • 廣域網中的DNS服務

    拓撲圖                      創建主DNS:     配置文件/etc/named.conf&nbs…

    2017-04-15
  • shell的變量功能

                                                      &nbsp…

    2017-08-05
欧美性久久久久