cut
cut以行為處理單位,提取指定區(qū)域數(shù)據(jù)。
-
cut -bn <file>,以字節(jié)(byte)為分割單位
-b list打印出list中指定位置字節(jié),制表符和空格符均為一個(gè)字節(jié);
-n對(duì)于多字節(jié)字符不進(jìn)行分割,主要針對(duì)漢字(一個(gè)漢字三個(gè)字節(jié))等多字節(jié)字符; -
cut -c <file>,以字符(character)為分割單位
-c list打印出list中指定位置字符,對(duì)于單字節(jié)字符同-b選項(xiàng),對(duì)于多字節(jié)字符有區(qū)別; -
cut -df <file>,以域(field)為分割單位
-f list指定取出哪一列,默認(rèn)以制表符作為分隔符;
-d byte指定分隔符;
sed
stream editor,以行為單位,每處理完一行立即打印,再處理下一行。
-
sed [options] 'command' filename
options是指sed的命令行參數(shù),sed從filename標(biāo)準(zhǔn)輸入。如果操作比較復(fù)雜,為了簡(jiǎn)便,可以把命令寫到script,然后-f參數(shù)調(diào)用。 -
sed -f sed_script filename
sed_script是指對(duì)輸入執(zhí)行的一個(gè)或多個(gè)命令,sed會(huì)依次讀取輸入文件的每一行操作指令并做相應(yīng)處理.
3.d刪除行
sed '2,4d' filename #刪除第2到第4行 - s查找替換
sed 's/RNA/DNA/' filename #s默認(rèn)只替換每一行第一次匹配到的內(nèi)容
sed 's/RNA/DNA/n' filename #替換每一行第n個(gè)匹配值
sed 's/RNA/DNA/g' filename #利用g選項(xiàng),表示全局匹配,替換所有能夠匹配到的值
sed 's/RNA//g' filename #將RNA替換成空,即刪除所有RNA
- y字符替換
sed 'y/RNA/WD/' filename #如果前后對(duì)應(yīng)的字符數(shù)不一致則會(huì)報(bào)錯(cuò)。
sed 'y/RNA/WDY/' filename #將R替換成W,N替換成D,A替換成Y
sed 'y/01234/ABCDE/' filename #將0替換成A,將1替換成2……
- a/i插入命令
sed '3 i line' filename # i表示在3行之前插入
sed '3 a LINE' filename # a表示在3行之后插入
- n命令讀取下一行,用下一個(gè)命令處理新的行
n命令是兩行為一個(gè)單位進(jìn)行處理的,其中第一行為匹配行而非處理行
sed '/1#/ {n; s/RNA/DNA/g}' filename
首先匹配1即第1行,然后替換命令處理下一行即第2行 - ;一次執(zhí)行多個(gè)命令
sed 's/RNA/DNA/g; y/12345/ABCDE/' filename - &保存搜索字符用來(lái)替換其他字符
sed 's/RNA/&AA/g' filename #在RNA后添加AA
sed '/RNA/ {s//&AA/g}' filename #作用同上
- q命令退出
sed '2q' filename #打印前2行后退出