next up previous contents
Next: XML 資料讀取優化 Up: 匯入優化 Previous: XML 資料讀取   Contents

使用 grep 讀取 XML 資料

  1. 優化的主要工具為 grep,故先說明 grep 的幾個重要選項:
  2. -mn:其中 n 為數字,最多找到 n 筆就結束。例如:-m4,會找到第 4 筆後結束。
    [root@dywH ~]# grep -m1 match /etc/fonts/fonts.conf 
    	<match target="pattern">
    [root@dywH ~]# grep -m4 match /etc/fonts/fonts.conf 
    	<match target="pattern">
    	</match>
    	<match target="pattern">
    	</match>
    
  3. -An:其中 n 為數字,找到找到資料後,多印出其後面的 n 行。例如:-A2,會多印出匹配行的後 2 行。每筆資料中間會以 -- 隔開。
    [root@dywH ~]# grep -m2 -A2 match /etc/fonts/fonts.conf 
    	<match target="pattern">
    		<test qual="any" name="family">
    			<string>mono</string>
    --
    	</match>
    
    <!--
    
  4. -Bn:其中 n 為數字,找到找到資料後,多印出其前面的 n 行。例如:-A2,會多印出匹配行的前 2 行。每筆資料中間會以 -- 隔開。
    [root@dywH ~]# grep -m2 -B2 match /etc/fonts/fonts.conf 
      Accept deprecated 'mono' alias, replacing it with 'monospace'
    -->
    	<match target="pattern">
    --
    			<string>DejaVu Sans Mono</string>
    		</edit>
    	</match>
    
  5. -Cn:其中 n 為數字,找到找到資料後,多印出其前面及後面的 n 行。例如:-C2,會多印出匹配行的前後各 2 行。每筆資料中間會以 -- 隔開。
    [root@dywH ~]# grep -m2 -C2 match /etc/fonts/fonts.conf 
      Accept deprecated 'mono' alias, replacing it with 'monospace'
    -->
    	<match target="pattern">
    		<test qual="any" name="family">
    			<string>mono</string>
    --
    			<string>DejaVu Sans Mono</string>
    		</edit>
    	</match>
    
    <!--
    
  6. -o:僅輸出匹配的字串。
    [root@dywH ~]# grep -o match /etc/fonts/fonts.conf
    match
    match
    match
    match
    match
    match
    



2017-08-04