日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Shell-05 sed

發布時間:2025/5/22 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell-05 sed 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Shell-05

sed命令

Linux文本處理三劍客之sed語句(行編輯—流編輯器 stream editor)

作為行編輯器對文本進行編輯,以行為單位

注意:sed編輯文件,卻不改變原文件;

Sed的工作原理:

???????? 在sed里面會提供一個地址空間,在linux的內存中會出現一個模式空間PATTERN SPACE,讀取一行

?

?

制定一個文本文件,依次讀取文本文件中每行的內容,讀取到模式空間中(PATTERN SPACE),在模式空間中進行文本匹配(正則表達式),對匹配后的內容進行修改(替換、刪除、打印、修改、保存)

Sed的用法:

sed [option] …{script-only-if-no-other-script} [input-file]

sed [參數] … “sed自己獨立的用法格式的語句” [文本文件]

常見選項:

????????????????????????? -r? 指定使用擴展的正則表達式

?????????????????????????????????? 匹配IP地址

? ? ? ? ? ? ? ? ?   ? ? ?1.所有的\都不要

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.| 或者

-n???? 拒絕默認輸出

???????? sed -n ‘1,2p’ 99cfb.sh

-e???? script for while if

???????? for i in {1..9};do echo “$i” sleep 1;done

-f????? 指定腳本文件

-l????? 指定文本換行的長度

-i?? 直接修改文件內容(不要使用)

Sed命令的地址定界方式

  • 直接匹配數值
  • Sed -n ‘5,7p’ 99cfb.sh

  • digit(數字)指定步長 d~步長
  • sed -n ‘1~3s/j/@/p’ 99cfb.sh

  • $ 指定行尾
  • Sed -n ’10,$p’ 文件

    ?????????????????????????????????? Sed -n ‘\fd\,$p’ 文件-----匹配從fd到行尾

    ? ? ? ? ? ? ??

    ?

  • 0,addr ---addr 可以為數字/$/正則表達式
  • Sed -n ‘0,/k\{5,\}/p’ abc
  • Sed -n ‘/\(as\)\+/,/\(ds,\)\+/p’ abc
  • addr,+N
  • 匹配addr行到,addr后N行

    Sed -n ‘/fd/,+5p’ abc

  • addr,-N
  • sed -n ‘1,~3p’ abc

    常見命令:

    ????????????????? p print 打印 默認在屏幕上顯示出來,建議與-n一起使用

    ????????????????? c 替換行sed “/aaa/c \A” 文件名

    ????????????????? d 刪除 ?sed “/aaa/d” 文件名 ??刪除匹配到的行

    ?????????????????????????????????? sed “1,3d” 文件名

    ????????????????? n N 讀取/添加 模式匹配到的行的下一行內容在對其進行操作

    ????????????????? w 保存文件內容到一個新的文件

    ????????????????? *s* 文本內容替換 默認替換模式空間匹配到的第一項內容

    ?????????????????????????????????? g global 全部/全局

    ??????????????????????????????????

    ?????????????????????????????????? 語法格式:s/pattern/字符串/---中間的斜杠何以替換為任意一個特殊字符

    ????????????????? ????????????????? \1 \2 \3…? 和正則表達式的分組是相同的,實現反向應用

    ???????????????????????????????????????????????????? 指定某一個匹配項進行修改替換

    ???????????????????????????-第四行的第三個for替換成if

    ? ? ? ? ? ? ? ? ? ? ? ??第四行的第三個for替換成if并保存到99xfb.sed.sh

    ????????????????? i 在匹配行的上一行添加內容

    ????????????????????????? sed “/for/i abc ” filename

    ????????????????? a 在匹配行的下一行添加內容

    ????????????????????????? sed “/for/a abc ” filename

      ??

    ?

    ?? Grep “testbash” /etc/passwd | Sed “s#^test.*#&er#g”

    ?

    ?

    例如s###、s@@@、s%%%

    sed “s/k/K/gw? /root/aabbcc” abc

    sed的高級應用?????????????

    D ?hold space—占有空間

    ?????????????????

    隨機數

    ????????????????? RANDOM? 范圍0-32767

    ????????????????? A=$[$RANDOM%100+1]

    ???????? 練習:

    ?

    ?

  • cat /boot/grub/grub.conf??????? sed ?‘s/^[[:space:]]\+//g’ /boot/grub/grub.conf
  • cat /etc/fstab ????????????? sed ‘s/^#[[:space:]]\+//’ /etc/fstab
  • ?echo “/var/log/message | ”sed? ‘s/[^/]\+$//’
  • echo "/var/log/message" | sed? 's#^/.*/##'
  • ?

  • 取出文件路徑的路徑部分----dirname

    取出文件路徑的文件部分----basename

    ?

    死循環

    while true;do

    ????????????? 循環體

    done

    break—打斷跳出循環

    continue----跳出本次循環

    sleep----延長多長時間后,繼續執行循環

    until

    ?????? 與while用法相同

    ?????? 區別:只有判斷條件為false的時候,才會進入循環語句

    練習2:

    ?

    ?

    #!/bin/bashcat << EOF菜 單============================"CPU)顯示cpu信息""Mem)顯示內存信息""Disk)顯示磁盤信息""Quit)退出"============================EOFwhile true;doread -p "請輸入需要查看的信息:" infoecho ""if [ -z $info ];thenecho "請輸入一個正確的參數!!"echo "例如:CPU Mem Disk Quit"# exit 1fiif [ $info = "cpu" ];thencat /proc/cpuinfoelif [ $info = "mem" ];thenfree -melif [ $info = "disk" ];thenfdisk -lelif [ $info = "quit" ];thenecho "已退出"exit 0elseecho "輸入信息有誤"echo "請輸入一個正確的參數!!"echo "例如:CPU Mem Disk Quit"exit 2fidone

    ?

    ?

    進度條

    ?

    ?

    Vim .vimrc

    編輯vim的一些默認參數

    ?

    ?

    云桌面

    作用:給客戶從云端分配PC機,讓客戶在云端辦公;

  • 安全
  • 方便
  • 【在vim中,“.”代表光標所在當前行:“.,$s/^/#/-----從光標所在當前行到行尾的開頭替換成#”】

    1~3 1,4,7,11----步長

    /pattern1/,/pattern2----從模式1匹配到的行,到模式2匹配到的行1

    數字,+N

    /pattern1/,+N------".,+3s/^#//” 從光標所在當前行到后三行的開頭替換成空

    ?

    轉載于:https://www.cnblogs.com/KAJIA1/p/11392365.html

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的Shell-05 sed的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。