grep,sed,awkと簡単な正規表現の応用
grep,sed,awkと簡単な正規表現の応用
ここで使用するテストファイルはlinux/etc/passwdファイルで、ファイルの内容が破損するようにコピーして練習することが望ましい.やはり多く练习してやっととても良い使うことができると感じて、习题のここは贴らないで、ネット上で一大を探します.
grep: -oは、何回フィールド -cが印刷されて要求に合致する行数 -nが要求に合致する行を出力すると同時に行番号 -vを印刷して要求に合致しない行 -Aを印刷した後、1つのデジタルps-A 2が印刷要求に合致する行と次の2行 -Bの後に1つのデジタルps-B 2が印刷要求に合致する行と上の2行を表すC-C次の数字ps-C 2は、印刷が要求に合致する行と上下の2行
注意:
sed:(-nとpの組み合わせ、その他は使用しません)
awk:
ここで使用するテストファイルはlinux/etc/passwdファイルで、ファイルの内容が破損するようにコピーして練習することが望ましい.やはり多く练习してやっととても良い使うことができると感じて、习题のここは贴らないで、ネット上で一大を探します.
grep: -oは、何回フィールド -cが印刷されて要求に合致する行数 -nが要求に合致する行を出力すると同時に行番号 -vを印刷して要求に合致しない行 -Aを印刷した後、1つのデジタルps-A 2が印刷要求に合致する行と次の2行 -Bの後に1つのデジタルps-B 2が印刷要求に合致する行と上の2行を表すC-C次の数字ps-C 2は、印刷が要求に合致する行と上下の2行
grep -n 'root' passwd
grep -n -v 'root' passwd
grep -n '[0-9]' passwd
grep -n -v '[0-9]' passwd
# :grep -n -v '^#' passwd
# :grep -v '^#'|grep -v '^$'
grep '^[^0-9]' 1.txt
grep '[a-zA-Z]' passwd
grep 'r.o' passwd;grep 'r*t' passwd; grep 'r.*t' passwd
^ , [^] )
[^a] “ a ”。
[^a-zA-Z0-9] “ ”。
[\^abc] “ a b c”。
[^\^] “ 。
* 0 *
. ( )
? 0 ?
+ +
.*
注意:
+ ? | grep ( -E ),egrep
(oo)* 0 oo
(oo){1,2} 1 2
sed:(-nとpの組み合わせ、その他は使用しません)
sed '10p' -n passwd; sed '1,4p' -n passwd; sed '5,$p' -n 1.txt
sed -n '/root/p' passwd ^ . * $
-e sed -e '/root/p' -e '/body/p' -n passwd
; sed '/root/p'; /body/p' -n passwd
sed ‘/root/d’ passwd; sed '1d' passwd; sed '1,10d' passwd
sed '1,2s/ot/to/g' passwd s ,g , ,/ #,@
sed 's/[0-9]//g' passwd
sed '/[^0-9]//g' passwd
2 head -n2 passwd | sed 's/\(root\)\(.*\)\(bash\)/\3\2\1/'
sed -i 's/ot/to/g' passwd
sed 's/[a-z]/\u&/g' passwd
sed 's/[A-Z]/\l&g' passwd
awk:
awk -F ':' '{print $1}' passwd
awk -F ':' '{print $1"#"$2"#"$3"#"$4}' passwd
awk '/oo/' passwd
awk -F ':' '$1~/oo/' passwd
awk -F ':' '/root/ {print $1,$3};$1 ~/test/;$3 ~/20/' passwd
: == > < != >= <=
awk -F ':' '$3==0' passwd
awk -F ':' '$3>500' passwd
awk -F ':' '$7!="/sbin/nologin"' passwd
awk -F ':' '$3$5 && $3$4 || $7="/bin/bash"' passwd
awk NF( ) NR( )
head -n3 1.txt | awk -F ':' '{print NF}'
head -n3 1.txt | awk -F ':' '{print $NF}'
head -n3 1.txt | awk -F ':' '{print NR}'
20 awk 'NR>20' passwd
awk -F ':' 'NR>20 && $1~/ssh/' passwd
awk -F ':' '$1="root"' passwd
, ,
awk -F ':' '{$7=$3+$4;print $0}' passwd
awk -F ':' '{(tot=tot+$3)}; END {print tot}' passwd
awk if awk -F ':' '{if($1=="root")print $0}' passwd