歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux基本操作 10 正則表達式與文件格式化處理

Linux基本操作 10 正則表達式與文件格式化處理

日期:2017/3/3 16:18:03   编辑:關於Linux

一 正則表達式

1 簡單的說正則表達式就是處理字符串的方法,它是以行為單位來進行字符串的處理行為,正則表達 式通過一些特殊符號的輔助,可以讓用戶輕易的達到查找,刪除,替換某特定字符串的處理程序

2 grep在數據中查找一個字符串時,是以整行為單位來進行數據的選取的,也就是說假如一個文件內 有10行,那麼其中兩行是有用的,那麼就將這兩行顯示出來,其它的丟棄

3 在bash當中,我們知道通配符*可以用來表示任意個字符,但是正則表達式中的*表示不同的含義

在正則表達式中,'.'表示的是一定有一個任意字符的意思

在正則表達式中,'*'表示的是重復前一個字符0到無窮多次的意思

4 基礎的正則表達式

RE字符 意義

^word 查找行首為 word的行

word$ 查找結尾為word的行

. 代表一定有一個任意的字符

\ 轉義字符,將特殊字符的特殊意義去除

* 重 復前一個字符0個到無窮多個

[list] 從字符集合 裡面選擇一個字符

[n1-n2] 從要選擇的范圍裡面選擇一 個字符

[^list] 從不是這個字符集 合裡面找出一個字符

\{n,m\} 連續n到m個的前一個字符, \{n\}則是連續n個前一個字符,\{n,\}則是聯系n到無窮多個前一個字符

二 sed 工具

1 sed本省是一個管道命令,可以分析標轉輸入,而且sed還可以將數據進行替換,刪除,新增,選取 特定行等功能

2 sed的用法

sed [-nefr] [動作]

-n 使用安靜模式,在一般模式中,所有來自stdin的數據一般都會被列出到屏幕上,但是如果加上-n 這個參數的話,則只有經過sed特殊處理的那一行才會被列出

-e 直接在命令模式上進行sed的動作編輯

-f 直接將sed的動作寫在一個文件內,-f filename則可以執行filename內的sed動作

-r sed的動作支持的是擴展正則表達式的語法

-i 直接修改文件的內容,而不是由屏幕輸出

3 動作說明 n1,n2 function

n1,n2不見得會存在,一般代表的是進行的動作的行數

function有下面這些參數

a: 新增,a的後面可以接字符串,而這些字符串會在新的一行出現,目前的下一行

c: 替換,c的後面可以接字符串,這些字符串可以替換n1,n2之間的行

d: 刪除,因為是刪除,所以d後面通常不接任何參數

i: 插入,i的後面可以接字符串,而這些字符串會在新的一行,目前的上一行

p: 打印,也就是將某個選擇的數據打印出來

s: 替換,可以直接進行替換的工作

三 文件的格式化以及相關處理

1 格式化打印

printf '打印內容‘ 實際內容

關於C程序語言內,常見的變量格式

%ns 那個n是數字,s代表的是string

%nd 那個n是數字,d代表的是整數

%N.nf 那個n與N都是數字,f代表浮點數

2 文件比較工具diff

diff就是用在比較兩個文件之間的區別,並且是行為單位來比較的,一般是用在ASCLL純文本文件的 比較上

diff的用法

diff [-bBi] from_file to_file

-b 忽略一行當中僅有多個空白的區別

-B 忽略空白行的區別

-i 忽略大小寫的不同

3 如果我們要將舊的文件升級成為新的文件時,我們可以先利用diff比較出文件的區別,並將區別文 件制作成為補丁文件,再由補丁文件更新舊文件即可。

一般來說我們使用diff制作出來的比較文件通常擴展名為.patch

更新:patch -pN < patch_file

還原:patch -R -pN < patch_file

 

Copyright © Linux教程網 All Rights Reserved