正則表達sed, awk編輯

2021-09-25 20:19:10 字數 2722 閱讀 5948

sed -n '1p' user         //輸出第1行

sed -n '2,4p' user //輸出2~4行

sed -n '3p;5p' user //輸出第3行第5行zhanghuxinxi

sed -n '2,+2p' user //輸出第2行,以及後面的2行

sed -n '1~2p' user //檢視奇數行

sed -n '2~2p' user //檢視偶數行

**sed的定址符可以使用正規表示式,在/ / 中間填寫**

sed -n '/root/p' user //檢視有root的行

sed -n '/^root/' user //檢視以root開頭的行

sed -n '=' user //檢視所有行的行號

sed -n '$=' user //檢視最後一行的行號

sed '/nologin$/d' user //刪除含有nologin結尾的行

sed '/^install/d' user //刪除以install開頭的行

sed '$d' user //刪除檔案的最後一行

sed '/^$/d' user //刪除所有空行

sed 's/2017/***x/' test     //所有行的第乙個2017

sed '2s/2017/***x/2' test //替換第二行第二個2017

sed 's/2017/***x/g' //更換所有行的所有2017

sed '3s/2017/***/1,2' test //第三行第一,二個2017替換為***

sed '10,13s/^/#&/' test //在10到13行行首新增# &表示任意字元

sed 's/$/***/' test //在行尾新增***

sed '3s/2017/***x/;3s/2017/***x' test //更換第3行第1個2017,以及更換後第乙個2017

sed -n 's/2017/***x/p' test //檢視替換之後行的內容

sed 's/2017/ /' test //替換所有行第乙個2017為空---刪除2017

**替換分隔符"/"可改用其他字元如#,&,便於修改檔案路徑**

sed 's#/bin/bsah#/sbin/sh#' test //將/bin/bash替換為/sbin/sh

sed 's/^#an/an/' test //解除以#an開頭行的注釋

sed '2a ***' user

sed '2i ***' user

sed '2c ***' user

sed 's/.//2;s/.$//'  11.txt
sed -r 's/^(.)(.*)(.)$/\3\2\1/' 11.txt
sed -r 's/(.)(.)(.*)/\2\1\3/'  11.txt
sed 's/[0-9]//g' 11.txt
基本操作:awk [選項]』[條件]』 檔案

print 常用編輯命令,列印

未指定分隔符是,預設將空格,製表符等作為分隔符.

awk -f: '' /etc/passwd    //以分號分隔的第1,7個字段

-f 指定分隔符

$n 顯示第n個字段

awk -f[:/] '' /etc/passwd

-f[:/] 識別多個分隔符,以: 或/分割

awk -f: '/root/' /etc/passwd

/root/--正規表示式 含有root的行的第二列

awk -f: '' /etc/passwd

nr 檔案當前的行號 nf:檔案當前的列號(有幾列)

內建變數

$0:文字中當前行的全部內容

$n:文字中的第n列

nr:檔案中當前的行號

nf:檔案中當前的列數(有幾列)

常量" "

awk -f: '' /etcpasswd
處理程序

awk -f: 'begin \

end' /etc/passwd

"~包含 !~ 反向匹配

awk -f: '$1~/root/' /etc/passwd

輸出第一列為root的行的第1.7列

數值/字串比較設定條件

比較符號: ==,!=,>,<,>=,<=

邏輯測試符號 ||或 $$與

awk -f: 'nr==3' /etc/passwd  //輸出行號為3的使用者記錄

awk -f: '$3>=1000' /etc/passwd //輸出使用者uid大於等於1000的賬戶名稱和uid資訊

awk -f: ' $3>10 &&$3<20' /etc/passwd /輸出賬戶uid大於10且小於20的賬戶資訊

正規表示式 sed awk

awk 萬用字元.1.正規表示式 首先,必須知道命令是否支援正規表示式,不然的話只能使用bash的萬用字元。然後,一定要分清楚萬用字元和正則的區別 萬用字元 表示任意字元 包括數量 而在正則中 表示任意數量個前一字元 萬用字元?表示乙個字元,在正則中用.表示乙個字元 正規表示式分為基礎正則和擴充套件...

正規表示式之sed awk簡介

正規表示式 在文書處理的過程中,正規表示式極其有用。它提供了一種處理文字串的一種規則,結合特殊的字元,以行為單位處理字串,很容易進行搜尋 刪除 替換等操作。對正則支援的工具也很多,比較常用的有vim grep sed awk等。注意正則與shell萬用字元的區別,同樣的字元含義大相徑庭。在不支援正則...

shell中的正規表示式 sed awk

本文主要說一些正則的基本語法,並且結合linux的各種小工具 egrep sed awk 列舉一些使用例項。一 基本語法 正則的基本語法就大概是下面這些,但是正則遠不止這些,甚至可以寫一本書,當然了,我們這裡只列舉一些簡單的 用法,這些已經可以解決大部分實際問題了。1 字元類 字元 含義舉例 匹配任...