æ¥æ¾ç®å½ä¸çæææ件ä¸æ¯å¦å«ææ个å符串
find .|xargs grep -ri "IBM"
æ¥æ¾ç®å½ä¸çæææ件ä¸æ¯å¦å«ææ个å符串,并ä¸åªæå°åºæ件å
find .|xargs grep -ri "IBM" -l
1.æ£å表达å¼
ï¼1ï¼æ£å表达å¼ä¸è¬ç¨æ¥æè¿°ææ¬æ¨¡å¼çç¹æ®ç¨æ³ï¼ç±æ®éå符ï¼ä¾å¦å符a-zï¼ä»¥åç¹æ®å符ï¼ç§°ä¸ºå
å符ï¼å¦/ã*ã?çï¼ç»æã
ï¼2ï¼åºæ¬å
å符éåå
¶å«ä¹
^ ï¼åªå¹é
è¡é¦ã å¦^a å¹é
以aå¼å¤´çè¡abc,a2e,a12,aaa,......
$ ï¼åªå¹é
è¡å°¾ã å¦^a å¹é
以aç»å°¾çè¡bca,12a,aaa,.......
* ï¼å¹é
0个æå¤ä¸ªæ¤åå符ã å¦(a)* å¹é
空ï¼a,aa,aaa,....
[] ï¼åªå¹é
[]å
å符ãå¯ä»¥æ¯ä¸ä¸ªåå符ï¼ä¹å¯ä»¥æ¯å符åºåï¼ç¨","å°éé¢è¦å¹é
çä¸åå符串åå¼ãä¹å¯ä»¥ä½¿ç¨-æ¥è¡¨ç¤º[]å
å符åºåçèå´ï¼å¦[1-5]表示[12345]
\ ï¼åªç¨æ¥å±è½ä¸ä¸ªå
å符çç¹æ®å«ä¹ã å¦\*,\',\",\|,\+,\^,\. ç
.ï¼ï¼ç¹ï¼åªå¹é
ä»»æåå符ã
pattern\{n\}ï¼åªç¨æ¥å¹é
åé¢patternåºç°ç次æ°.n为次æ°ãå¦a\{2\}å¹é
aa.
pattern\{n,\}ï¼å«ä¹åä¸ï¼ä½æ¬¡æ°æå°ä¸ºn.å¦a\{2,\}å¹é
aa,aaa,aaaa,.....
pattern\{n,m\}ï¼å«ä¹åä¸ï¼ä½æ¬¡æ°å¨nåmä¹é´ãå¦a\{2,4\}å¹é
aa,aaa,aaaaä¸ä¸ª
(3)举ä¾è¯´æï¼
^$ ï¼å¹é
空è¡
^.$ ï¼å¹é
å
å«ä¸ä¸ªå符çè¡
\*\.pas ï¼å¹é
以*.pasç»å°¾çææå符ææ件
[0123456789]æ[0-9] ï¼åå®è¦å¹é
ä»»æä¸ä¸ªæ°å
[a-z] ï¼ä»»æå°ååæ¯
[A-Za-z] ï¼ä»»æ大å°ååæ¯
[S,s] ï¼å¹é
大å°åS
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\} ï¼å¹é
IPå°å [0-9]\{3\}ä¸ä¸ª0-9ç»æçå符串ï¼\. ï¼å¹é
ç¹ï¼æ³¨æè¿éç¹æ¯ç¹æ®çå符ï¼æ以è¦ç¨"\"æ¥å±è½å
¶å«ä¹ï¼
2.findä»ç» ï¼1ï¼æ¥æ¾å
·ææäºç¹å¾æ件çå½ä»¤ï¼å¯éåå½åç®å½çè³äºæ´ä¸ªæ件系ç»æ¥æ¥çæäºæ件æç®å½ï¼å
¶éå大çæ件系ç»æ¶ä¸è¬æ¾å¨åå°æ§è¡ã
ï¼2ï¼findå½ä»¤çä¸è¬å½¢å¼
find pathname -options [-print -exec -ok]
-pathname :findå½ä»¤ææ¥æ¾çç®å½è·¯å¾ãå¦ç¨"."æ¥è¡¨ç¤ºå½åçç®å½ï¼ç¨/æ¥è¡¨ç¤ºç³»ç»æ ¹ç®å½
-print :findå½ä»¤å°å¹é
çæ件è¾åºå°æ åè¾åº
-exec: findå½ä»¤å¯¹å¹é
çæ件æ§è¡è¯¥åæ°æç»åºçshellå½ä»¤ï¼ç¸åºçå½ä»¤å½¢å¼ä¸º
'command'{} \; (注æ{}å\ä¹é´çç©ºæ ¼)
-ok å -execçä½ç¨ç¸åï¼åªä¸è¿ä»¥ä¸ç§æ´ä¸ºå®å
¨ç模å¼æ¥æ§è¡è¯¥åæ°æç»åºçshellå½ä»¤ï¼å¨æ§è¡æ¯ä¸ä¸ªå½ä»¤ä¹åï¼é½ä¼ç»åºæ示ï¼è®©ç¨æ·æ¥ç¡®å®æ¯å¦æ§è¡ã
optionsæå¦ä¸å ç§ï¼
-name ï¼æç
§æ件åæ¥æ¾æ件
-perm ï¼æç
§æ件æéæ¥æ¥æ¾æ件
-user ï¼æç
§æ件å±ä¸»æ¥æ¥æ¾æ件
-group ï¼æç
§æ件æå±çç»æ¥æ¥æ¾æ件
-mtime -n +n æç
§æ件çæ´æ¹æ¶é´æ¥æ¥æ¾æ件ï¼-n表示æ件æ´æ¹æ¶é´è·ç°å¨n天以å
ï¼+n表示æ件æ´æ¹æ¶é´è·ç°å¨n天以åãfindå½ä»¤è¿æ-atime å-ctimeé项ï¼ä½å®ä»¬é½å-mtimeé项ç¸ä¼¼ã
-size n[c]æ¥æ¾æ件é¿åº¦ä¸ºnåçæ件ï¼å¸¦æcæ¶è¡¨ç¤ºæ件é¿åº¦ä»¥åè计ã
-nogroup æ¥æ¾æ æææå±ç»çæ件ï¼å³è¯¥æ件æå±çç»å¨/etc/groupsä¸ä¸åå¨
-newer file1 !file2æ¥æ¾æ´æ¹æ¶é´æ¯æ件file1æ°ä½æ¯æ件file2æ§çæ件
-depth å
æ¥æ¾æå®ç®å½ææ å¹é
æ件ï¼è¥æ ååå¨åç®å½ä¸æ¥æ¾
-type æ¥æ¾æä¸ç±»åçæ件ï¼å¦
b :å设å¤æ件
dï¼ç®å½
eï¼å符设å¤æ件
pï¼ç®¡éæ件
lï¼ç¬¦å·é¾æ¥æ件
fï¼æ®éæ件
ï¼3ï¼findå½ä»¤ä¸¾ä¾
find -name "*.txt" -print æ¥æ¾txtç»å°¾çæ件并è¾åºå°å±å¹ä¸
find /cmd ".sh" -print æ¥æ¾/cmdç®å½ä¸ææshæ件ï¼å¹¶è¾åº
find . -perm 755 -print æ¥æ¾å½åç®å½ä¸æé为755çæ件ï¼å¹¶è¾åº
find `pwd` -user root -print æ¥æ¾å½åç®å½ä¸å±ä¸»ä¸ºrootçæ件ï¼å¹¶è¾åº
find ./ -group sunwill -print æ¥æ¾å½åç®å½ä¸æå±ä¸»æ¯sunwillçæ件
find /var -mtime -5 -print æ¥æ¾/varç®å½ä¸æ´æ¹æ¶é´ä¸º5天å
çæææ件
find /var -mtime +5 -print æ¥æ¾/varç®å½ä¸æ´æ¹æ¶é´ä¸º5天以åçæææ件
find /var -newer "myfile1" ! -newer "myfile2" -print æ¥æ¾/varç®å½ä¸æ¯myfile1æ°ï¼ä½æ¯æ¯myfile2æ§çæææ件ã
find /var -type d -print æ¥æ¾/varç®å½ä¸ææç®å½
find /var -type l -print æ¥æ¾/varç®å½ä¸ææç符å·é¾æ¥æ件ã
find . -size +1000000c -print æ¥æ¾å½åç®å½ä¸å¤§äº1000000åèçæ件
find / -name "con.file" -depth -print æ¥æ¾æ ¹ç®å½ä¸ææ "con.file",è¥æ åå¨å
¶åç®å½ä¸æ¥æ¾
find . -type f -exec ls -l {} \; æ¥æ¾å½åç®å½ä¸æ¯å¦ææ®éæ件ï¼è¥æåæ§è¡ls -l
ï¼4ï¼xargså½ä»¤
å¨ ä½¿ç¨findå½ä»¤ç-execé项å¤çå¹é
å°çæ件æ¶ï¼findå½ä»¤å°ææå¹é
å°çæ件ä¸èµ·ä¼ éç»execãä¸å¹¸çæ¯ï¼æäºç³»ç»å¯¹è½å¤ä¼ éç»execçå½ ä»¤é¿åº¦æéå¶ï¼è¿æ ·findå½ä»¤è¿è¡å åéä¹åå°±ç®åºç°æº¢åºé误ãé误信æ¯é常æ¯âåæ°å太é¿âæâåæ°å溢åºâãè¿å°±æ¯xargsçç¨å¤æå¨ï¼ç¹å«æ¯ä¸ findå½ä»¤ä¸èµ·ä½¿ç¨,execä¼åèµ·å¤ä¸ªè¿ç¨ï¼èxargsä¼å¤ä¸ªï¼åªæä¸ä¸ª
find ./ -perm -7 -print | xargs chmod o-w æ¥æ¾æé为7çæä»¶å¹¶ä¼ éç»chmodå¤ç
3.grepä»ç» (1)grep çä¸è¬æ ¼å¼ä¸º grep [options] åºæ¬æ£åè¡¨è¾¾å¼ [æ件]
å符串åæ°æ好éç¨æ¯åå¼å·æ¬ï¼ä¸æ¯ä»¥é²è¢«è¯¯è§£ä¸ºshellå½ä»¤ï¼äºæ¯å¯ä»¥ç¨æ¥æ¥æ¾å¤ä¸ªåè¯ç»æçå符串
-cï¼åªè¾åºå¹é
è¡çè®°æ°
-iï¼ä¸åºå大å°åï¼åªéç¨äºå个å符ï¼
-hï¼æ¥è¯¢å¤ä¸ªæ件æ¶ä¸æ¾ç¤ºæ件å
-Hï¼åªæ¾ç¤ºæ件å
-lï¼æ¥è¯¢å¤æ件æ¶åªè¾åºå
å«å¹é
å符çæ件å
-nï¼åªæ¾ç¤ºå¹é
è¡åå
¶è¡å·
-sï¼ä¸æ¾ç¤ºä¸åå¨ææ å¹é
ææ¬çé误信æ¯ã
-vï¼æ¾ç¤ºä¸å
å«å¹é
ææ¬çææè¡ã
ï¼2ï¼ä¸¾ä¾è¯´æï¼
grep ^[^210] myfile å¹é
myfileä¸ä»¥é2ã1ã0å¼å¤´çè¡
grep "[5-8][6-9][0-3]" myfile å¹é
myfileä¸ç¬¬ä¸ä½ä¸º5|6|7|8ï¼ç¬¬äºä½6|7|8|9ï¼ç¬¬ä¸ä½ä¸º0|1|2|3çä¸ä¸ªå符çè¡
grep "4\{2,4\}" myfile å¹é
myfileä¸å«æ44,444æ4444çè¡
grep "\?" myfileå¹é
myfileä¸å«æä»»æå符çè¡
ï¼3ï¼grepå½ä»¤ç±»å
[[:upper:]] 表示[A-Z]
[[:alnum:]] 表示[0-9a-zA-Z]
[[:lower:]] 表示[a-z]
[[:space:]] è¡¨ç¤ºç©ºæ ¼æè
tabé®
[[:digit:]] 表示[0-9]
[[:alpha:]] 表示[a-zA-Z]
å¦ï¼grep "5[[:digit:]][[:digit:]]" myfile å¹é
myfileä¸å«æ5å¼å¤´æ¥ä¸å»ä¸¤ä½é½æ¯æ°åçè¡ã
4.awkä»ç»
å¯ä»¥ä»æ件æå符串ä¸åºäºæå®è§åæµè§åæ½åä¿¡æ¯ï¼æ¯ä¸ç§èªè§£éçåæè¯è¨ã
ï¼1ï¼awkå½ä»¤è¡æ¹å¼ awk [-F filed-spearator] 'command' input-files
awkèæ¬ï¼ææawkå½ä»¤æå
¥ä¸ä¸ªæ件ï¼å¹¶ä½¿awkç¨åºå¯æ§è¡ï¼ç¶åç¨awkå½ä»¤è§£éå¨ä½ä¸ºèæ¬çé¦è¡ï¼ä»¥ä¾¿éè¿é®å
¥èæ¬å称æ¥è°ç¨å®ãawkèæ¬æ¯ç±åç§æä½å模å¼ç»æã
模å¼é¨åå³å®å¨ä½è¯å¥ä½æ¶è§¦åå触åäºä»¶ãï¼BEGIN,ENDï¼
å¨ä½å¯¹æ°æ®è¿è¡å¤çï¼æ¾å¨{}å
ææï¼printï¼
ï¼2ï¼åé符ãååè®°å½
awkæ§è¡æ¶ï¼å
¶æµè§åæ 记为$1,$2,...$n.è¿ç§æ¹æ³æ为åæ è¯ã$0为ææåã
ï¼3ï¼ä¸¾ä¾è¯´æ:
awk '{print $0}' test.txt |tee test.out è¾åºtest.txtä¸ææè¡$0表示ææå
awk -F : '{print $1} test.txt |tee test.out' åä¸ããåªæ¯åé符为":"
awk 'BEGIN {print "IPDate\n"}{print $1 "\t" $4} END{print "end-of-report"}' test.txt
å¼å§æ¶æå°âIPDateâç»ææ¶æå°âend-of-reportâä¸é´æå°ä¸»ä½ä¿¡æ¯ï¼æ¯å¦æ»å
±å¹é
ä¸æ¡ä¿¡æ¯ï¼åè¾åºå¦ä¸ï¼
IPDate
1 first
2 second
3 third
end-of-report
ï¼4ï¼å¹é
æä½ç¬¦ ~ å¹é
,!~ ä¸å¹é
cat test.txt |awk '$0~/210.34.0.13/' å¹é
test.txtä¸ä¸º210.34.0.13çè¡
awk '$0!~/210.34.0.13' test.txt å¹é
test.txtä¸ä¸æ¯210.34.0.13çè¡
awk '{if($1=="210.34.0.13") print $0}' test.txt å¹é
test.txtä¸ç¬¬ä¸ä¸ªå为210.34.0.13çè¡ã
5.sedä»ç» sedä¸ä¸åå§åæ件æ交éï¼å®æä½çåªæ¯ä¸ä¸ªæ·è´ï¼ç¶åææçæ¹å¨å¦æ没æéå®åå°ä¸ä¸ªæ件ï¼å°è¾åºå°å±å¹ã
sedæ¯ä¸ç§å¾éè¦çææ¬è¿æ»¤å·¥å
·ï¼ä½¿ç¨ä¸è¡å½ä»¤æè
使ç¨ç®¡éä¸grepä¸awkç¸ç»åãæ¯ä¸ç§é交äºæ§ææ¬æµç¼è¾ã
ï¼1ï¼è°ç¨sedçä¸ç§æ¹å¼
使ç¨sedå½ä»¤è¡æ ¼å¼ä¸ºï¼sed [options] sedå½ä»¤ è¾å
¥æ件
使ç¨sedèæ¬æä»¶æ ¼å¼ä¸ºï¼sed[options] -f sedèæ¬æ件 è¾å
¥æ件
sedèæ¬æ件[options] è¾å
¥æ件
--ä¸ç®¡æ¯ä½¿ç¨shellå½ä»¤è¡æ¹å¼æèæ¬æ件æ¹å¼ï¼å¦æ没ææå®è¾å
¥æ件ï¼sedä»æ åè¾å
¥ä¸æ¥åè¾å
¥ï¼ä¸è¬æ¯é®çæéå®åç»æã
ï¼2ï¼sed å½ä»¤çoptionså¦ä¸
-nï¼ä¸æå°
-cï¼ä¸ä¸å½ä»¤æ¯ç¼è¾å½ä»¤
-fï¼å¦ææ£å¨è°ç¨sedèæ¬æ件
ï¼3ï¼sedå¨æ件ä¸æ¥è¯¢ææ¬çæ¹å¼
--使ç¨è¡å·ï¼å¯ä»¥æ¯ä¸ä¸ªç®åçæ°åï¼ææ¯ä¸ä¸ªè¡å·çèå´
--使ç¨æ£å表达å¼
ï¼4ï¼è¯»åææ¬çæ¹å¼
x x为ä¸è¡å·
x,y 表示è¡å·èå´ä»xå°y
/pattern/ æ¥è¯¢å
å«æ¨¡å¼çè¡
/pattern/pattern/ æ¥è¯¢å
å«ä¸¤ä¸ªæ¨¡å¼çè¡
pattern/,x å¨ç»å®çè¡å·ä¸æ¥è¯¢å
å«æ¨¡å¼çè¡
x,/pattern/ éè¿è¡å·å模å¼æ¥è¯¢å¹é
è¡
x,y! æ¥è¯¢ä¸å
å«æå®è¡å·xåyçè¡
ï¼5ï¼åºæ¬sedç¼è¾å½ä»¤
p æå°å¹é
è¡
d å é¤å¹é
è¡
= æ¾ç¤ºæ件è¡å·
a\ å¨å®ä½è¡å·åéå æ°ææ¬ä¿¡æ¯
i\ å¨å®ä½è¡å·åæå
¥æ°ææ¬ä¿¡æ¯
c\ ç¨æ°ææ¬æ¿æ¢å®ä½ææ¬
s 使ç¨æ¿æ¢æ¨¡å¼æ¿æ¢ç¸åºæ¨¡å¼
r ä»å¦ä¸ä¸ªæ件ä¸è¯»æ件
w åææ¬å°ä¸ä¸ªæ件
q 第ä¸ä¸ªæ¨¡å¼å¹é
å®æåæ¨åºæç«å³éåº
l æ¾ç¤ºä¸å
«ç¦æ¢ASCII代ç çä»·çæ§å¶å符
{} å¨å®ä½è¡æ§è¡çå½ä»¤ç»
n ä»å¦ä¸ä¸ªæ件ä¸è¯»ææ¬ä¸ä¸è¡ï¼å¹¶éå å¨ä¸ä¸è¡
g å°æ¨¡å¼2ç²è´´å°/pattern n/
y ä¼ éå符
ï¼6ï¼ä¸¾ä¾è¯´æï¼
sed -n '2p' test.txt æå°ç¬¬äºè¡çä¿¡æ¯(注æï¼-næ¯ä¸æå°ä¸å¹é
çä¿¡æ¯ï¼è¥æ²¡å -nï¼åæå°æ件çææä¿¡æ¯èä¸æ¯å¹é
ä¿¡æ¯)
sed -n '1,4p' test.txt æå°ç¬¬ä¸è¡å°ç¬¬åè¡çä¿¡æ¯
sed -n '/los/p' test.txt模å¼å¹é
losï¼å¹¶æå°åºæ¥
sed -n '2,/los/p' test.txt ä»ç¬¬äºè¡å¼å§ããç¥éå¹é
第ä¸ä¸ªlos
sed -n '/^$/p' test.txt å¹é
空è¡
sed -n -e '/^$/p' -e '/^$/=' test.txt æå°ç©ºè¡åè¡å·
sed -n '/good/a\morning' test.txt å¨å¹é
å°çgoodåé¢éå morning
sed -n '/good/i\morning' test.txt å¨å¹é
å°çgoodåé¢æå
¥morning
sed -n '/good/c\morning' test.txt å°å¹é
å°çgoodæ¿æ¢æmorning
sed '1,2d' test.txt å é¤ç¬¬1å2è¡
sed 's/good/good morning/g' test.txt å¹é
good并æ¿æ¢ægoodmorning
send 's/good/& hello /p' test.txt å¹é
å°goodå°±å¨å
¶åé¢å ä¸hello
send 's/good/ hello &/p' test.txt å¹é
å°goodå°±å¨å
¶åé¢å ä¸hello
6.å并ä¸åå²ï¼sort,uniq,join,cut,paste,splitï¼ (1)sotå½ä»¤
sort [options] files 许å¤ä¸åçåæä¸åçå顺åºæåº
-c æµè¯æ件æ¯å¦å·²ç»æåº
-m å并两个æåºæ件
-u å é¤ææåæ ·è¡
-o åå¨sortç»æçè¾åºæ件å
-t ååé符ï¼ç¨éç©ºæ ¼ætabå¼å§æåº
+n ï¼n 为åå·ï¼ä½¿ç¨æ¤åå·å¼å§æåº
-n æå®æåºæ¯åä¸çæ°åå类项
-r æ¯è¾æ±é
sort -c test.txt æµè¯æ件æ¯å¦åç±»è¿
sort -u test.txt æåºå¹¶å并ä¸æ ·çè¡
sort -r test.txt 以ç¸åç顺åºæå
sort -t "/" +2 test.txt 以"/"åéï¼ç¬¬äºä¸ªåå¼å§åç±»
ï¼2ï¼uniqå½ä»¤
uniq [options ] files ä»ä¸ä¸ªææ¬æ件ä¸å»é¤æç¦æ¢éå¤è¡
-u åªæ¾ç¤ºä¸éå¤è¡
-d åªæ¾ç¤ºæéå¤æ°æ®è¡ï¼æ¯ç§éå¤è¡åªæ¾ç¤ºå
¶ä¸ä¸è¡
-c æå°æ¯ä¸éå¤è¡åºç°æ¬¡æ°
-f ï¼n为æ°åï¼ån个å被忽ç¥
uniq -f 2 test.txt 忽ç¥å2个å
ï¼3ï¼join å½ä»¤
join [options] file1 file2 ç¨æ¥å°æ¥èªä¸¤ä¸ªåç±»ææ¬æ件çè¡è¿å¨ä¸èµ·
-anï¼n为ä¸æ°åï¼ç¨äºè¿æ¥æ¶ä»æ件nä¸æ¾ç¤ºä¸å¹é
è¡
-onm ï¼è¿æ¥åï¼n为æ件å·ï¼m为åå·
-jnmï¼n为æ件å·ï¼m为åå·ï¼ä½¿ç¨å
¶ä»åä½è¿æ¥å
-t ï¼ååé符ãç¨æ¥è®¾ç½®éç©ºæ ¼ætabé®çååé符ã
ï¼4ï¼splitå½ä»¤
split -output_file_size intput_filename output_filename
ç¨æ¥å°å¤§æ件åå²æå°æ件ã
-b nï¼æ¯ä¸ªåå²æ件ç大å°n
-C nï¼æ¯ä¸ªåå²æ件ä¸è¡æå¤nåè
-l nï¼æ¯ä¸ªåå²æ件çè¡æ°
-nï¼å-l n
split -10 test.txt å°test.txtåå²æ10è¡çå°æ件
ï¼5ï¼cut å½ä»¤
cut -c n1-n2 filename æ¾ç¤ºæ¯è¡ä»å¼å¤´ç®èµ· n1 å° n2 çæåã
cut -c 3-5 test.txt æ¾ç¤ºtest.txtä¸æ¯è¡ä»ç¬¬3å°ç¬¬5个å符
温馨提示:内容为网友见解,仅供参考