linux文本截取

cut

cut以行為處理單位,提取指定區(qū)域數(shù)據(jù)。

  1. cut -bn <file>,以字節(jié)(byte)為分割單位
    -b list 打印出list中指定位置字節(jié),制表符和空格符均為一個(gè)字節(jié);
    -n 對(duì)于多字節(jié)字符不進(jìn)行分割,主要針對(duì)漢字(一個(gè)漢字三個(gè)字節(jié))等多字節(jié)字符;
  2. cut -c <file>,以字符(character)為分割單位
    -c list 打印出list中指定位置字符,對(duì)于單字節(jié)字符同-b選項(xiàng),對(duì)于多字節(jié)字符有區(qū)別;
  3. cut -df <file>,以域(field)為分割單位
    -f list 指定取出哪一列,默認(rèn)以制表符作為分隔符;
    -d byte 指定分隔符;

sed

stream editor,以行為單位,每處理完一行立即打印,再處理下一行。

  1. sed [options] 'command' filename
    options是指sed的命令行參數(shù),sed從filename標(biāo)準(zhǔn)輸入。如果操作比較復(fù)雜,為了簡(jiǎn)便,可以把命令寫到script,然后-f參數(shù)調(diào)用。
  2. sed -f sed_script filename
    sed_script是指對(duì)輸入執(zhí)行的一個(gè)或多個(gè)命令,sed會(huì)依次讀取輸入文件的每一行操作指令并做相應(yīng)處理.
    3.d刪除行
    sed '2,4d' filename #刪除第2到第4行
  3. 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
  1. 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…… 
  1. a/i插入命令
sed '3 i line' filename  # i表示在3行之前插入
sed '3 a LINE' filename  # a表示在3行之后插入
  1. n命令讀取下一行,用下一個(gè)命令處理新的行
    n命令是兩行為一個(gè)單位進(jìn)行處理的,其中第一行為匹配行而非處理行
    sed '/1#/ {n; s/RNA/DNA/g}' filename
    首先匹配1即第1行,然后替換命令處理下一行即第2行
  2. ;一次執(zhí)行多個(gè)命令
    sed 's/RNA/DNA/g; y/12345/ABCDE/' filename
  3. &保存搜索字符用來(lái)替換其他字符
sed 's/RNA/&AA/g' filename  #在RNA后添加AA
sed '/RNA/ {s//&AA/g}' filename  #作用同上
  1. q命令退出
    sed '2q' filename #打印前2行后退出

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容