sed命令筆記250419

sed命令筆記250419

sed(Stream Editor)是 Linux/Unix 系統中強大的流編輯器,主要用于對文本進行過濾和轉換(按行處理)。它支持正則表達式,適合處理文本替換、刪除、插入等操作。以下是 sed 的詳細解析:


一、基本語法

sed [選項] '命令' 輸入文件
sed [選項] -f 腳本文件 輸入文件  # 從腳本文件讀取命令

二、常見選項

選項說明
-n靜默模式,僅輸出處理后的行(常與 p 命令搭配)
-e指定多個命令,如 sed -e '命令1' -e '命令2'
-i直接修改文件內容(慎用,建議先備份)
-i.bak 修改前備份原文件為 .bak
-E, -r, --regexp-extended使用擴展正則表達式(如 +, |, () 等)
-f從指定文件中讀取命令

三、編輯命令(核心)

1. 替換命令 s
s/pattern/replacement/flags
  • flags 常用值:
    • g:全局替換(默認每行僅替換第一個匹配)
    • p:替換后打印行(需與 -n 選項配合)
    • i:忽略大小寫
    • 數字:替換第 N 個匹配
  • 示例
    echo "hello world" | sed 's/hello/hi/'      # 輸出 hi world
    echo "a a a" | sed 's/a/b/2'               # 替換第二個a:a b a
    
2. 刪除命令 d
sed '地址定界d' 文件  # 刪除匹配行
sed '3d' file      # 刪除第3行
sed '/^$/d' file   # 刪除所有空行
3. 插入/追加行
命令說明
i\在行前插入內容(如 sed '2i\插入內容' file
a\在行后追加內容(如 sed '2a\追加內容' file
4. 其他命令
命令說明
p打印行(常與 -n 配合:sed -n '1p' file 打印第1行)
=顯示行號(如 sed '=' file
y字符轉換(如 sed 'y/abc/ABC/' 將a→A, b→B, c→C)
r讀取文件并插入(如 sed '/pattern/r otherfile' file
w將匹配行寫入文件(如 sed '/pattern/w output.txt' file

四、地址定界(指定操作范圍)

格式說明
n第 n 行(如 sed '3s/a/b/' 修改第3行)
n,m第 n 到 m 行(如 1,5d 刪除1-5行)
$最后一行
/pattern/匹配正則的行(如 /^#/d 刪除注釋行)
n,+m從第n行到其后m行(如 2,+3 表示2-5行)
!取反(如 3!d 刪除除第3行外的所有行)

五、替換命令 s 的進階用法

1. 分組與反向引用

sed 命令中的分組(Grouping)是正則表達式的重要功能,通過 () 將部分模式標記為一個整體,并可通過反向引用在替換操作中重用這些分組內容。

echo "123-456" | sed -r 's/([0-9]+)-([0-9]+)/\2-\1/'  # 輸出 456-123
  • () 分組,\1, \2 引用分組。 從 \1 開始, 第一個是 \1
  • ?? sed 不支持 (?:) 語法,所有 () 均為捕獲分組。

用sed替換文本 筆記250419
sed的分組替換,捕獲組,反向引用 筆記250419

2. 特殊字符轉義

若替換內容包含 /,可更換分隔符(如 s|/old|/new|)。

3. 動態替換

使用 & 引用匹配的整個內容:

echo "123" | sed 's/[0-9]\+/數字:&/'  # 輸出 數字:123

分組詳解

sed的分組替換,捕獲組,反向引用 筆記250419

sed 命令中的分組(Grouping)是正則表達式的重要功能,通過 () 將部分模式標記為一個整體,并可通過反向引用在替換操作中重用這些分組內容。

?? sed 不支持 (?:) 語法,所有 () 均為捕獲分組。

一、分組的基本語法
1. 創建分組

使用 \(\) 包裹正則表達式(基礎正則語法):

echo "abc123" | sed 's/\([a-z]\+\)[0-9]\+/\1/'  # 輸出 abc
# 解析:
# - \([a-z]\+\) 匹配字母部分,并標記為分組1
# - \1 反向引用分組1的內容
2. 擴展正則表達式

若使用 -r(GNU sed)或 -E(macOS),可省略轉義符:

echo "abc123" | sed -r 's/([a-z]+)[0-9]+/\1/'  # 輸出 abc(更簡潔)

二、分組的核心用途
1. 提取并重組內容
# 將日期格式從 "YYYY-MM-DD" 改為 "DD/MM/YYYY"
echo "2023-10-05" | sed -r 's/([0-9]{4})-([0-9]{2})-([0-9]{2})/\3\/\2\/\1/'
# 輸出:05/10/2023
# 分組1: 2023, 分組2: 10, 分組3: 05
2. 保留部分原始內容
# 在匹配的單詞兩側添加方括號
echo "hello world" | sed -r 's/(\b\w+\b)/[\1]/g'
# 輸出:[hello] [world]
3. 動態調整順序
# 交換 "key: value" 為 "value: key"
echo "name: John" | sed -r 's/([^:]+):\s*(.+)/\2: \1/'
# 輸出:John: name

三、高級分組技巧
1. 多級分組(嵌套分組)

分組按左括號順序編號,從外到內、從左到右:

echo "12-34-56" | sed -r 's/(([0-9]{2})-){2}([0-9]{2})/\1\3/'
# 輸出:12-3456
# 分組1: 12-34-, 分組2: 34, 分組3: 56

用sed替換文本 筆記250419
sed的分組替換,捕獲組,反向引用 筆記250419

2. 與替換標志結合

結合 g(全局)或 i(忽略大小寫)等標志:

# 將所有重復的單詞合并(如 "hello hello" → "hello")
echo "hello hello world" | sed -r 's/\b(\w+)\b \1/\1/g'
# 輸出:hello world
3. 非捕獲分組(sed不支持)

?? sed 不支持 (?:) 非捕獲分組語法,所有 () 均為捕獲分組。


四、分組在地址定界中的應用

分組也可用于匹配行的條件判斷:

# 刪除包含重復單詞的行(如 "apple apple")
sed -r '/\b(\w+)\b \1/d' file.txt


六. 示例場景

1. 替換文件內容
sed -i 's/foo/bar/g' file.txt        # 將所有foo替換為bar(直接修改文件)
sed -i.bak 's/old/new/' file.txt     # 修改前備份原文件為file.txt.bak
2. 刪除操作
sed '/^#/d' file.conf                # 刪除所有注釋行(以#開頭)
sed '/^$/d; /^$/d' file              # 刪除連續空行(保留單個空行需更復雜處理)
3. 處理指定行
sed '2,5s/yes/no/' file             # 將2-5行的yes替換為no
sed '$a\This is the end' file        # 在最后一行后追加內容
4. 多重命令
sed -e 's/foo/bar/' -e '/baz/d' file
sed 's/a/A/; s/b/B/' file           # 多個命令用分號分隔
1. 處理日志文件
# 提取日志中的 IP 和訪問路徑(假設格式:IP - [時間] "GET /path HTTP/1.1")
cat access.log | sed -r 's/([0-9.]+).*"GET (\/[^ ]+).*/\1 \2/'
# 輸出:192.168.1.1 /index.html
2. 格式化配置文件
# 將 "key=value" 改為 "key = value"
sed -r 's/([^=]+)=/\1 = /' config.ini
3. 處理 CSV 數據
# 交換 CSV 前兩列(假設分隔符為逗號)
echo "apple,123,fruit" | sed -r 's/([^,]+),([^,]+)/\2,\1/'
# 輸出:123,apple,fruit

七、注意事項

  1. -i 選項風險:直接修改原文件,建議先不加 -i 測試命令。

  2. 正則兼容性:默認支持基礎正則,使用 -r-E 啟用擴展正則。

  3. 行處理機制sed 逐行處理,適合大文件,但復雜操作可能不如 awk 靈活。

  4. 轉義括號:在基礎正則中需用 \(\),擴展正則(-r-E)可直接用 ()

  5. 分組數量:最多支持 9 個分組(\1\9)。

  6. 性能:復雜分組可能降低處理速度,尤其在大型文件中。

用sed替換文本 筆記250419
sed的分組替換,捕獲組,反向引用 筆記250419










1?? 參考 1

sed(Stream Editor)是 Linux/Unix 中強大的流式文本處理工具,主要用于對文本進行替換、刪除、插入等操作。以下是 sed 的詳細用法:


基本語法

sed [選項] '命令' 輸入文件
sed [選項] -f 腳本文件 輸入文件

常用選項

選項作用
-n僅輸出處理后的行(默認會輸出所有行)
-i直接修改文件內容(謹慎使用,建議先備份)
-e指定多個命令(例如 sed -e '命令1' -e '命令2'
-f從腳本文件讀取命令
-E, -r, --regexp-extended使用擴展正則表達式(簡化語法)

常用命令

1. 替換文本s
sed 's/原內容/替換內容/[標志]'
  • 標志
    • g:全局替換(默認只替換每行第一個匹配項)
    • p:打印替換后的行(常與 -n 選項一起使用)
    • i:忽略大小寫(需配合 -r-E 使用擴展正則)

示例

sed 's/apple/orange/g' file.txt       # 替換所有 apple 為 orange
sed -n 's/foo/bar/p' file.txt         # 僅打印發生替換的行
sed -i 's/old/new/' file.txt          # 直接修改文件
sed 's|/usr/bin|/usr/local/bin|g'     # 使用 | 替代 / 作為分隔符

2. 刪除行d
sed '地址定界符 d' 文件

示例

sed '3d' file.txt           # 刪除第3行
sed '/pattern/d' file.txt   # 刪除匹配 pattern 的行
sed '1,5d' file.txt         # 刪除1-5行
sed '/^$/d' file.txt        # 刪除所有空行

3. 插入/追加行ia
  • i:在指定行前插入
  • a:在指定行后追加

示例

sed '2i Insert this line' file.txt    # 在第2行前插入一行
sed '/pattern/a Append this line'     # 在匹配行后追加一行

4. 替換指定行號
sed '2s/old/new/' file.txt       # 替換第2行的第一個 old 為 new
sed '1,5s/old/new/g' file.txt    # 替換1-5行的所有 old 為 new

5. 地址定界(指定操作范圍)
  • 行號sed '3,5命令'(操作第3-5行)
  • 正則匹配sed '/pattern/命令'(操作匹配 pattern 的行)

示例

sed '/start/,/end/d' file.txt    # 刪除從 start 到 end 的所有行
sed '/^#/d' file.txt             # 刪除所有注釋行(以 # 開頭)

高級用法

1. 多命令執行
sed -e 's/foo/bar/' -e '/pattern/d' file.txt
# 或
sed 's/foo/bar/; /pattern/d' file.txt
2. 保持空間(Hold Space)
  • h:將模式空間內容復制到保持空間
  • H:將模式空間內容追加到保持空間
  • g:將保持空間內容復制到模式空間
  • G:將保持空間內容追加到模式空間

示例(反轉文件行序):

sed -n '1!G;h;$p' file.txt

3. 文件操作
sed 'r 文件2' 文件1        # 將文件2的內容插入到文件1的每行后
sed '/pattern/w 新文件' file.txt  # 將匹配的行寫入新文件

4. 轉換字符y
sed 'y/abc/XYZ/' file.txt   # 將 a→X, b→Y, c→Z(類似 tr 命令)

常見使用場景

  1. 批量替換文件內容

    sed -i 's/old/new/g' *.txt
    
  2. 刪除空行或注釋行

    sed -i '/^$/d; /^#/d' file.conf
    
  3. 提取特定內容

    sed -n '/error/p' log.txt > errors.log
    
  4. 行號處理

    sed = file.txt | sed 'N; s/\n/ /'   # 顯示行號(類似 nl)
    
  5. 批量修改配置

    sed -i '/^Port /s/22/2222/' /etc/ssh/sshd_config  # 修改SSH端口
    

注意事項

  • -i 選項會直接修改文件,建議先不加 -i 測試命令。
  • 正則表達式中的特殊字符(如 *, $, ^)需要轉義。
  • macOS 的 sed 與 Linux 存在差異(如 -i 必須帶參數:sed -i '' ...)。

通過靈活組合上述命令,可以高效處理文本任務!










2?? 參考 2

sed命令詳解

一、sed是什么?

sed(Stream Editor) 是 Linux 和類 Unix 系統中的流式文本編輯器,用于對文本進行高效處理和轉換。它逐行讀取文件,通過命令對文本進行增刪改查操作,支持正則表達式,適合處理大量文本數據。

二、核心語法結構

sed [選項] '命令' 輸入文件
  • 常用選項
    • -n:安靜模式(不自動打印所有行,需配合p命令顯式輸出)。
    • -i:直接修改文件內容(慎用,建議先不加-i測試)。
    • -e:執行多個命令(如 sed -e 's/a/b/' -e 's/c/d/' file)。
    • -f:從腳本文件讀取命令(sed -f script.sed file)。

三、基礎命令與示例

1. 打印文本
  • 打印第2行
    sed -n '2p' file.txt
    
  • 打印第1-3行
    sed -n '1,3p' file.txt
    
  • 打印包含"error"的行
    sed -n '/error/p' file.txt
    
2. 替換文本
  • 替換每行第一個匹配項
    sed 's/old/new/' file.txt
    
  • 全局替換(所有匹配項)
    sed 's/old/new/g' file.txt
    
  • 替換第3行的內容
    sed '3s/old/new/' file.txt
    
3. 刪除文本
  • 刪除第3行
    sed '3d' file.txt
    
  • 刪除空行
    sed '/^$/d' file.txt
    
  • 刪除包含"error"的行
    sed '/error/d' file.txt
    
4. 插入/追加文本
  • 在第2行前插入文本
    sed '2i\Insert this line' file.txt
    
  • 在第2行后追加文本
    sed '2a\Append this line' file.txt
    

四、高級功能

1. 多行處理命令
  • 合并下一行到模式空間
    sed 'N' file.txt  # 合并兩行(如處理跨行日志)
    
  • 刪除多行組中的單行
    sed 'D' file.txt  # 刪除模式空間的第一行
    
  • 打印多行組中的單行
    sed -n 'P' file.txt  # 打印模式空間的第一行
    
2. 模式空間與保持空間
  • 復制模式空間到保持空間
    sed 'h' file.txt  # h命令
    
  • 將保持空間內容覆蓋模式空間
    sed 'g' file.txt  # g命令
    
  • 示例:交換兩行內容
    echo -e "line1\nline2\nline3" | sed -n '1h;2x;p'
    # 輸出:line2(原第1行和第2行交換)
    
3. 分支與循環
  • 條件分支
    sed '/pattern/b label' file.txt  # 匹配pattern則跳轉到label
    
  • 循環替換
    echo "This, is, a, test" | sed -n ':start; s/,//1p; t start'
    # 輸出:This is a test(逐步刪除逗號)
    
4. 正則表達式增強
  • 子字符串匹配
    echo "System Administrator" | sed 's/\(System\) Administrator/\1 User/'
    # 輸出:System User(\1引用第一個括號內容)
    
  • 擴展正則表達式(使用-r-E):
    sed -r 's/(http|https)://\1/g' file.txt  # 提取URL協議
    

五、實用技巧

  1. 批量修改文件
    sed -i 's/舊域名/新域名/g' *.html  # 修改所有HTML文件中的域名
    
  2. 提取特定行
    sed -n '10,20p' data.log  # 輸出第10-20行
    
  3. 刪除空行和注釋
    sed -r '/^$|^#/d' config.conf  # 刪除空行和以#開頭的行
    
  4. 復雜替換
    sed 's/old/new/2' file.txt  # 僅替換每行第二個匹配項
    

六、總結

  • 適用場景:日志處理、配置文件修改、批量文本替換、數據分析預處理。
  • 注意事項
    • 使用-i前務必備份文件。
    • 正則表達式中的特殊字符(如/*)需轉義。
    • 多命令執行時,用分號或-e分隔命令。

掌握sed可顯著提升文本處理效率,建議通過實際案例練習鞏固。










3?? 參考 3

以下是關于 sed 命令的詳細解析,涵蓋其基本用法、核心命令、選項、高級功能及實際示例:


1. 什么是 sed

  • 全稱:Stream Editor(流編輯器)。
  • 功能:對文本流進行編輯,支持正則表達式,常用于文本處理、替換、刪除、插入等操作。
  • 特點
    • 非交互式處理,適合腳本自動化。
    • 處理時將文本暫存到“模式空間”(Pattern Space)中,處理后再輸出。

2. 基本語法

sed [選項] '命令' 文件
sed [選項] -f 腳本文件 文件
  • 常用選項
    • -n:抑制默認輸出(僅打印處理后的行)。
    • -i:直接修改原文件(可加后綴備份,如 -i.bak)。
    • -f 腳本文件:從文件中讀取 sed 命令。
    • -e:在命令行中執行多個命令。

3. 核心命令

(1) 替換(s 命令)
  • 語法s/舊字符串/新字符串/標志
  • 標志
    • g:全局替換(替換所有匹配項,默認僅替換第一個)。
    • p:替換后打印該行。
    • w 文件:將替換后的行寫入指定文件。
  • 示例
    # 替換文件中所有出現的 "apple" 為 "banana"
    sed 's/apple/banana/g' file.txt# 直接修改文件并備份
    sed -i.bak 's/apple/banana/g' file.txt# 替換每行最后一個匹配項
    sed 's/apple/banana/\;' file.txt  # 注意:此處 `\;` 表示最后一個匹配項
    
(2) 刪除(d 命令)
  • 語法地址 d
  • 示例
    # 刪除第3行
    sed '3d' file.txt# 刪除包含 "error" 的行
    sed '/error/d' file.txt# 刪除第5到第10行
    sed '5,10d' file.txt
    
(3) 打印(p 命令)
  • 語法地址 p
  • 示例
    # 打印第5行(需配合 `-n`)
    sed -n '5p' file.txt# 打印包含 "warning" 的行
    sed -n '/warning/p' file.txt
    
(4) 插入與追加
  • 插入(i:在指定行前插入文本。
  • 追加(a:在指定行后追加文本。
  • 示例
    # 在第3行前插入 "New Line"
    sed '3i\New Line' file.txt# 在匹配 "start" 的行后追加 "Added Text"
    sed '/start/a\Added Text' file.txt
    
(5) 行號與模式匹配
  • 行號地址:直接指定行號(如 3 表示第3行)。
  • 正則表達式:用 /pattern/ 匹配行。
  • 組合地址start,end/pattern1/,/pattern2/
  • 示例
    # 刪除第2到第5行
    sed '2,5d' file.txt# 從 "START" 到 "END" 的行全部刪除
    sed '/START/,/END/d' file.txt
    

4. 高級功能

(1) 分支與標簽(bt:label
  • 用途:實現條件跳轉或循環。
  • 示例
    # 標簽跳轉示例
    sed -e ':loop' -e '/pattern/!b end' -e 's/pattern/replacement/' -e 'b loop' -e ':end' file.txt
    
(2) 緩沖區操作(hHgG
  • 用途:暫存和恢復文本。
  • 命令
    • h:將模式空間內容存入緩沖區。
    • H:追加模式空間內容到緩沖區。
    • g:用緩沖區內容替換模式空間。
    • G:追加緩沖區內容到模式空間。
  • 示例
    # 將當前行與下一行合并
    sed -e 'N; s/\n/ /' file.txt
    
(3) 擴展正則表達式
  • 支持sed 支持正則表達式匹配,如 ^(行首)、$(行尾)、.*(任意字符)等。
  • 示例
    # 刪除以 "#" 開頭的行
    sed '/^#/d' file.txt# 替換行尾的數字
    sed 's/[0-9]$//g' file.txt
    

5. 實際應用示例

示例1:替換字符串并修改文件
# 將文件中的 "old" 替換為 "new",并備份原文件
sed -i.bak 's/old/new/g' config.txt
示例2:刪除特定行
# 刪除包含 "error" 的行,并輸出結果到新文件
sed '/error/d' log.txt > cleaned_log.txt
示例3:插入文本
# 在文件開頭插入 "Header Line"
sed '1i\Header Line' file.txt
示例4:結合正則表達式
# 將所有以數字開頭的行替換為空行
sed '/^[0-9]/s/.*/ /' data.txt
示例5:多命令組合
# 刪除第5行,替換第10行的 "text" 為 "new"
sed '5d;10s/text/new/' example.txt

6. 注意事項

  1. 默認行為sed 默認輸出所有行,修改僅在內存中臨時生效,需用 -i 保存。
  2. 特殊字符轉義:若替換內容包含 /& 等,需轉義或更換分隔符(如 s|old|new|)。
  3. 多行處理:用 N 命令將下一行加入模式空間,實現多行操作。

7. 總結

sed 是 Linux 下強大的文本處理工具,適用于:

  • 快速替換、刪除、插入文本。
  • 結合正則表達式進行復雜匹配。
  • 腳本自動化文本處理任務(如日志清理、配置文件修改)。

通過靈活組合命令和選項,可以高效完成各種文本編輯需求。










4?? 參考 4

sed 命令詳解

sed(Stream Editor,流編輯器)是 Unix/Linux 下強大的文本處理工具,用于對文本流(文件或標準輸入)進行過濾和轉換。它逐行讀取輸入,根據指定的腳本對每行數據進行處理,最終輸出處理結果。

一、基本語法
sed [選項] '腳本命令' 輸入文件

sed [選項] -f 腳本文件 輸入文件
二、常用選項
選項說明
-n取消默認輸出(僅輸出被腳本處理的行)。
-e執行指定的腳本命令(可省略,直接跟單引號腳本)。
-f file從文件中讀取腳本命令。
-i直接修改輸入文件(危險!建議先備份,可通過 -i.bak 生成備份)。
-r使用擴展正則表達式(默認使用基本正則表達式)。
-s分隔多個文件時,視為獨立文件處理(不合并成一個流)。
-v顯示版本信息。
三、核心工作流程
  1. sed 從輸入中讀取一行數據,存入模式空間(Pattern Space)
  2. 對模式空間中的內容應用腳本中的所有命令。
  3. 處理完成后,默認將模式空間的內容輸出到標準輸出(可通過 -n 禁用)。
  4. 清空模式空間,讀取下一行,重復上述過程。
四、常用命令(按功能分類)

1. 替換命令 s

語法

s/舊字符串/新字符串/[修飾符]
  • 修飾符
    • g:全局替換(替換行中所有匹配項,而非第一個)。
    • 數字:替換第 n 個匹配項(如 s/old/new/2 替換第二個匹配項)。
    • i:不區分大小寫(僅在擴展正則中有效,或配合 -r 使用)。

示例

  • 替換每行第一個 applebanana
    sed 's/apple/banana/' file.txt
    
  • 全局替換所有 applebanana
    sed 's/apple/banana/g' file.txt
    
  • 替換以 http:// 開頭的字符串為 https://(正則匹配):
    sed 's/^http:/https:/' file.txt
    
  • 使用其他分隔符(避免轉義斜杠):
    sed 's#http://#https://#' file.txt  # 用 # 代替 / 作為分隔符
    

2. 刪除命令 d

語法

地址范圍d  # 省略地址則匹配所有行

示例

  • 刪除包含 error 的行:
    sed '/error/d' file.txt
    
  • 刪除第 5 行:
    sed '5d' file.txt
    
  • 刪除空行:
    sed '/^$/d' file.txt  # 或 sed -e '/^\s*$/d' 處理包含空格的空行
    

3. 插入與附加命令 ia

  • i(插入):在匹配行的上方插入新行。
  • a(附加):在匹配行的下方插入新行。

語法

地址范圍i\  
新行內容  
地址范圍a\  
新行內容  

示例

  • 在包含 header 的行上方插入 # Start
    sed '/header/i\# Start' file.txt
    
  • 在文件末尾添加一行 EOF
    sed '$a\EOF' file.txt  # $ 表示最后一行
    

4. 修改命令 c

語法

地址范圍c\  
新內容  

功能:將匹配行替換為指定的新內容。
示例

  • 將第 3 行替換為 new line
    sed '3c\new line' file.txt
    

5. 打印命令 p

語法

地址范圍p

功能:打印匹配行(需配合 -n 選項避免默認輸出)。
示例

  • 僅打印包含 success 的行:
    sed -n '/success/p' file.txt
    
  • 打印第 2 到第 5 行:
    sed -n '2,5p' file.txt
    

6. 保留空間命令 hHgG

  • h:將模式空間內容復制到保留空間(覆蓋保留空間)。
  • H:將模式空間內容追加到保留空間。
  • g:將保留空間內容復制到模式空間(覆蓋模式空間)。
  • G:將保留空間內容追加到模式空間。

示例:交換兩行內容(需配合地址范圍):

sed -n '1h; 2G; p' file.txt  # 第1行存入保留空間,第2行追加保留空間內容并打印

7. 其他實用命令

  • =: 打印行號。
    sed '=' file.txt  # 輸出每行內容及其行號(行號先于內容)
    
  • q: 退出sed(遇到匹配行時終止處理)。
    sed '/target/q' file.txt  # 遇到包含target的行時停止處理
    
  • s/// 簡寫:替換為空(刪除匹配內容)。
    sed 's/old//' file.txt  # 刪除第一個old
    sed 's/old//g' file.txt  # 刪除所有old
    
五、地址范圍

sed 命令可針對特定行或匹配模式的行執行,地址范圍語法如下:

語法說明
nn 行(如 5 表示第5行)。
n,mn 行到第 m 行(如 2,10)。
/pattern/匹配包含 pattern 的行(如 /error/)。
/pattern1/,/pattern2/從匹配 pattern1 的行到匹配 pattern2 的行(包含這兩行)。
$最后一行。
0不匹配任何行(無意義)。

示例

  • 對第 3 到第 5 行執行刪除:
    sed '3,5d' file.txt
    
  • 對包含 start 到包含 end 的行之間的內容執行替換:
    sed '/start/,/end/s/old/new/g' file.txt
    
六、正則表達式注意事項
  1. 基本正則 vs 擴展正則

    • 默認使用基本正則表達式(BRE),特殊字符需轉義(如 \. 表示點號,\( \) 表示分組)。
    • 使用 -r 選項啟用擴展正則表達式(ERE),無需轉義部分字符(如 \. 可寫成 \.\.() 直接分組)。
  2. 常用正則符號

    • ^:行首,$:行尾。
    • .*:匹配任意字符(除換行符)零次或多次。
    • [abc]:匹配a、b、c中的任意一個。
    • \(text\)(BRE)或 (text)(ERE):分組,可通過 \1 引用第一個分組。

示例(分組引用)

  • 交換 a=123 b=456 中的值:
    sed 's/\(a=\)\(.*\) \(b=\)\(.*\)/\3\4 \1\2/'  # 基本正則,需轉義括號
    sed -r 's/(a=)(.*) (b=)(.*)/\3\4 \1\2/'     # 擴展正則,無需轉義括號
    
七、典型應用場景
  1. 替換文件中的字符串(謹慎使用 -i):
    sed -i 's/old_string/new_string/g' file.txt
    
  2. 刪除注釋或空行
    sed -e '/^#/d' -e '/^$/d' config.conf  # 刪除以#開頭的注釋行和空行
    
  3. 提取日志中的特定信息
    logfile | sed -n '/ERROR/p'  # 僅輸出包含ERROR的行
    
  4. 修改配置文件
    sed -i '/^user=/c\user=admin' config.ini  # 修改user配置項
    
  5. 處理 CSV/日志格式
    sed 's/,/ /g' data.csv  # 將逗號替換為空格
    
八、注意事項
  1. 備份文件:使用 -i 前務必確認,或通過 -i.bak 生成備份:
    sed -i.bak 's/old/new/g' file.txt  # 生成file.txt.bak備份
    
  2. 特殊字符轉義:在替換內容中若包含 $/& 等字符,需用 \ 轉義,或使用其他分隔符(如 #)。
  3. 多行處理:sed 默認逐行處理,若需處理多行,可結合 N(將下一行追加到模式空間)、D(刪除模式空間中直到第一個換行符的內容)等命令,但邏輯較復雜,建議改用 awkperl
九、總結

sed 是文本處理的瑞士軍刀,核心在于靈活運用地址范圍替換/刪除/插入等命令,結合正則表達式實現高效的文本轉換。掌握基礎命令后,通過實踐可應對復雜場景(如日志清洗、配置文件修改等)。建議先通過 man sed 查閱完整文檔,或使用在線工具(如 RegExr)調試正則表達式。










5?? 參考 5

sed 是流編輯器(Stream Editor)的簡稱,是一種強大的文本處理工具,能在 Linux 系統中對文本進行各種操作,如替換、刪除、插入等。以下是對它的詳細講解:

基本語法

  • sed [選項]... {script}... [輸入文件]...
  • sed [選項]... --file=scriptfile [輸入文件]...

其中,選項常見的有:

  • -e script :表示使用腳本 script 來處理輸入的文件。
  • -f scriptfile :表示使用腳本文件 scriptfile 中的指令來處理輸入的文件。
  • -n :只打印腳本處理后的結果,否則 sed 會默認輸出所有行。
  • -i :直接修改文件內容,而不是輸出到終端。

常見命令及操作

  • 替換(s) :格式為 s/查找內容/替換內容/選項 。例如,將文件中所有的 “apple” 替換為 “banana”,可以使用 sed 's/apple/banana/g' filename 。“g” 表示全局替換,如果不加 “g”,則每行只替換第一個匹配的 “apple”。
  • 刪除(d) :用于刪除指定的行。例如,刪除文件的第 3 行,使用 sed '3d' filename ;刪除文件中包含 “error” 的行,使用 sed '/error/d' filename
  • 插入(i 和 a)i 表示在指定行之前插入,a 表示在指定行之后插入。例如,在文件的第 2 行之前插入 “hello world”,使用 sed '2i hello world' filename ;在文件的第 4 行之后插入 “test”,使用 sed '4a test' filename
  • 打印(p) :用于打印指定的行。例如,打印文件的第 5 行,使用 sed -n '5p' filename ;打印文件中包含 “success” 的行,使用 sed -n '/success/p' filename

地址范圍

地址范圍可以指定要進行操作的行范圍,格式為 [地址范圍]操作 。例如:

  • sed '1,5d' filename :刪除文件的第 1 到第 5 行。
  • sed '/start/,/end/s/old/new/g' filename :從包含 “start” 的行到包含 “end” 的行之間,將所有的 “old” 替換為 “new”。

其他功能

  • 多行操作 :可以用 \ 將命令分多行書寫,提高可讀性。例如:

    • `sed -e ‘1,5d’ \

    -e ‘/error/d’ filename`

  • 腳本文件 :可以將多個 sed 命令寫入一個腳本文件,然后使用 -f 選項來執行。例如,創建一個腳本文件 script.sed,內容為:

    • 1,5d
    • /error/d

然后使用 sed -f script.sed filename 來執行。

  • 結合其他命令 :可以和其他命令結合使用,如 grepawk 等,實現更復雜的數據處理。例如,先用 grep 找出包含 “info” 的行,再用 sed 替換其中的某些內容:
    • grep 'info' filename | sed 's/old/new/g'










6?? 參考 6

sed(全稱:stream editor,即流編輯器)是一種在Unix、Linux和其他類Unix系統中常用的命令行文本處理工具。它可以對文本文件進行查找、替換、刪除和插入等操作,非常適合用于批量文本處理任務。

基本語法

sed [選項] '命令' 輸入文件

常用選項

  • -n:禁止自動打印模式空間,只有當命令明確要求輸出時才打印。
  • -e:允許在命令行上添加多個編輯命令。
  • -f:從指定的文件中讀取編輯命令。
  • -i:直接修改輸入文件,而不是將結果輸出到標準輸出。

常用命令

  • p:打印當前模式空間的內容。
  • d:刪除當前模式空間的內容。
  • s/old/new/:將當前模式空間中的“old”字符串替換為“new”字符串。
  • i\:在當前行之前插入文本。
  • a\:在當前行之后追加文本。
  • c\:將選定的行改為新的指定的文本。
  • y/old/new/:將當前模式空間中的字符“old”替換為“new”。

示例

  1. 打印文件中的所有行:
sed '' 文件名
  1. 打印文件中的第2行:
sed -n '2p' 文件名
  1. 刪除文件中的第2行:
sed '2d' 文件名
  1. 將文件中的所有“old”替換為“new”:
sed 's/old/new/g' 文件名
  1. 在文件中的每行前面添加“prefix-”:
sed 's/^/prefix-/' 文件名
  1. 直接修改文件,將所有“old”替換為“new”:
sed -i 's/old/new/g' 文件名

這只是sed命令的一些基本用法,實際上sed的功能非常強大,可以通過組合多個命令和選項來完成更復雜的文本處理任務。

sed命令詳解

sed(Stream Editor)是Linux/Unix系統中用于文本處理的流式編輯器,支持對文本進行查找、替換、刪除、插入等操作[1][2][6]。以下是其核心功能和用法的詳細解析:


一、基本語法
sed [選項] '命令' [輸入文件]
  • 選項:控制sed的行為(如直接修改文件、多命令執行等)。
  • 命令:指定操作類型(如替換、刪除、插入等)。
  • 輸入文件:可選,若省略則從標準輸入讀取數據[4][6]。

二、常用選項
選項作用
-i直接修改原文件(而非輸出到終端)[2][5]。
-e執行多個命令(可重復使用),例如 -e 's/old/new/' -e 'd'[2][6]。
-n禁止默認輸出,僅顯示經過處理的行(需配合p命令使用)[4][6]。

三、核心命令與操作
  1. 替換(Substitution)
    語法s/模式/替換內容/

    • 將匹配“模式”的文本替換為“替換內容”。
    • 示例:將文件file.txt中的foo替換為bar
      sed 's/foo/bar/g' file.txt  # `g`表示全局替換[^2^][^5^]
      
  2. 刪除(Delete)
    語法d

    • 刪除當前行。
    • 示例:刪除第3行:
      sed '3d' file.txt  # 或指定行范圍,如`3,5d`刪除3-5行[^3^][^5^]
      
  3. 插入(Insert)
    語法i\后接內容

    • 在當前行上方插入內容。
    • 示例:在第2行前插入New Line
      sed '2i\New Line' file.txt  # 使用`a\`表示在行下方插入[^3^][^5^]
      
  4. 打印(Print)
    語法p

    • 輸出緩沖區中的文本。常與-n選項配合使用。
    • 示例:僅打印包含error的行:
      sed -n '/error/p' file.txt  # `/pattern/p`表示匹配行才打印[^4^][^6^]
      
  5. 定界符與多命令

    • 若命令中包含/,可通過更改定界符避免沖突,例如s:/old/:/new/:g
    • 多命令用-e或分號分隔,例如:
      sed -e 's/foo/bar/' -e '3d' file.txt  # 先替換,再刪除第3行[^2^][^6^]
      

四、高級功能
  1. 正則表達式支持

    • sed支持基礎正則表達式,例如^(行首)、$(行尾)、.(任意字符)等。
    • 示例:刪除空行:
      sed '/^$/d' file.txt  # 匹配空行并刪除[^3^][^5^]
      
  2. 分組與引用

    • 使用\1, \2等引用括號分組內容。
    • 示例:將Chapter 1改為Section 1
      sed 's/\(Chapter \)[0-9]+\1/Section \1/' file.txt  # 替換分組內容[^5^]
      
  3. 腳本文件與復雜操作

    • 將多條命令寫入腳本文件(如commands.sed),通過sed -f commands.sed file.txt執行。
    • 示例:批量替換多個單詞:
      s/foo/bar/g
      s/test/demo/g
      

五、應用場景
  1. 批量文本處理

    • 快速修改配置文件、日志文件或代碼中的特定內容[1][4]。
    • 示例:批量替換代碼中的變量名:
      sed -i 's/oldVar/newVar/g' *.c  # 修改所有`.c`文件中的變量名[^2^][^5^]
      
  2. 數據清洗

    • 刪除多余空行、提取特定字段或格式化文本[3][6]。
  3. 腳本自動化

    • 結合Shell腳本實現復雜文本處理流程,例如日志分析或數據預處理[5]。

六、注意事項
  1. 備份原文件
    • 使用-i選項時,建議先備份文件(如cp file.txt file.bak),避免誤操作[4]。
  2. 區分sedawk
    • sed擅長簡單文本替換和刪除,而awk更適合基于條件的復雜文本處理[1][6]。
  3. 性能優化
    • 對大文件處理時,優先使用流式處理(如sed 's/pattern/replace/g' largefile),避免加載整個文件到內存[4]。

通過靈活組合選項和命令,sed可高效解決多種文本處理需求。更多細節可參考man sed或查看具體系統的幫助文檔[3][6]。










7?? 參考 7

在這里插入圖片描述

sed命令詳解與使用指南

sed(Stream Editor)是Linux/Unix系統中的流式文本編輯器,通過模式匹配+文本操作實現非交互式文本處理。其核心優勢在于逐行處理能力和正則表達式支持。


一、基礎語法結構
sed [選項] '操作指令' 輸入文件

典型示例

sed 's/foo/bar/g' file.txt  # 全局替換foo為bar
sed -i.bak '3d' config.cfg  # 刪除第3行并創建備份文件

二、核心功能模塊
  1. 常用選項(OPTIONS)

    選項功能說明
    -n抑制默認輸出,常與p命令配合使用
    -i[SUFFIX]直接修改源文件(謹慎使用),可選備份后綴
    -r啟用擴展正則表達式
    -e執行多條命令,如 sed -e 's/a/b/' -e '3d'
  2. 核心命令(COMMANDS)

    命令格式示例功能
    替換`s/pattern/replacement/[gp
    刪除d刪除匹配行,如 sed '/error/d' log.txt
    打印p輸出指定內容,需配合-n選項
    追加a\text在匹配行后追加文本
    插入i\text在匹配行前插入文本
  3. 地址匹配規則

    sed '3s/old/new/' file     # 僅在第3行替換
    sed '/start/,/end/d' file  # 刪除start到end之間的所有行
    sed '5,$p' file            # 打印第5行到末尾
    

三、高級應用技巧
  1. 多命令組合
    sed -e 's/foo/bar/; 5d' file.txt  # 替換后刪除第5行
    
  2. 正則表達式擴展
    sed -r 's/(\d+)-(\d+)/\2:\1/' phone.txt  # 用分組重組電話號碼
    
  3. 腳本文件調用
    sed -f script.sed input.txt  # 調用預存命令腳本
    

四、安全操作建議
  1. 測試命令時先省略-i選項,確認無誤后再執行真實修改
  2. 使用-i.bak創建備份文件,防止誤操作
  3. 復雜正則表達式建議先用echo | sed驗證

五、典型應用場景
  1. 日志清洗:sed '/ERROR/d; s/DEBUG/INFO/' app.log
  2. 配置文件修改:sed -i '/^#Port/s/#Port/Port/' sshd_config
  3. 數據格式轉換:sed 's/\(.*\)/\U\1/' names.txt(轉大寫)










8?? 參考 8

sed(Stream Editor)是Linux/Unix系統中強大的流式文本處理工具,支持非交互式的批量編輯操作。以下從核心功能、語法結構、實戰案例等方面進行詳解:


一、核心功能與原理

  1. 流式處理機制
    sed逐行讀取輸入(文件或標準輸入流),將當前行存入模式空間(Pattern Space),按腳本命令處理后輸出,再清空緩沖區進入下一循環。默認不修改原文件,僅輸出到終端,需通過-i選項直接編輯文件。

  2. 主要功能
    ? 替換文本:如批量修改字符串

    ? 刪除/插入行:根據行號或正則匹配操作

    ? 過濾與提取:打印特定行或匹配內容

    ? 復雜腳本處理:支持分支、循環等高級操作


二、基礎語法與常用命令

sed [選項] '操作指令' 輸入文件

常用選項

選項說明
-n禁止默認輸出,常與p命令配合顯示指定內容
-e執行多條命令(例:sed -e 's/a/b/' -e 'd'
-i直接修改原文件(危險操作,建議備份)
-r啟用擴展正則表達式

核心操作指令

命令功能示例
s/replace/new/替換首個匹配內容sed 's/old/new/g'(全局替換)
d刪除行sed '3d'(刪第3行)
a\text行后追加文本sed '/pattern/a\new line'
i\text行前插入文本sed '2i\header'(第2行前插入)
p打印內容sed -n '1,5p'(僅顯示1-5行)

三、地址定位與正則表達式

  1. 地址范圍
    ? 行號:3,5(第3到5行)

    ? 正則匹配:/^start/,/end$/(匹配以start開頭到end結尾的行)

    ? 特殊符號:$表示末行,1~2表示從第1行開始每隔2行處理

  2. 正則元字符

    符號含義
    ^行首錨定(例:/^#/匹配注釋行)
    $行尾錨定(例:/txt$/匹配以txt結尾的行)
    .*任意字符(貪婪匹配)
    \<單詞開頭(例:/\<word匹配以word開頭的單詞)

四、實戰案例

  1. 批量替換域名

    sed -i 's/www.old.com/www.new.com/g' *.conf  # 替換所有.conf文件中的舊域名
    
  2. 刪除注釋行與空行

    sed -i '/^#/d; /^$/d' script.sh  # 刪除以#開頭的行和空行
    
  3. 插入版權信息

    sed '1i\/* Copyright 2025 */' code.c  # 在文件首行插入版權聲明
    
  4. 提取特定范圍內容

    sed -n '/START/,/END/p' data.log  # 打印START到END之間的內容
    

五、高級技巧

  1. 多點編輯
    使用-e執行多個命令,或分號分隔:

    sed -e '1,5d' -e 's/error/warning/' log.txt  # 先刪除1-5行,再替換error
    
  2. 引用匹配內容
    在替換中使用&引用匹配項,或\1引用分組:

    sed 's/[0-9]/&th/g'  # 將數字后加th(如2→2th)
    sed 's/\(love\)able/\1rs/'  # loveable→lovers
    
  3. 模式空間與保持空間
    通過h(復制到緩沖區)、G(追加到模式空間)實現跨行操作。


總結
sed通過簡潔的腳本語法實現高效文本處理,尤其適合自動化場景。掌握基礎命令后,可結合正則表達式和地址定位處理復雜需求。更高級的標簽跳轉、條件分支等功能可參考官方文檔或進階教程。










9?? 參考 9

sed(Stream Editor)是一個強大的文本處理工具,廣泛用于在類Unix操作系統中進行文本替換、刪除、插入和搜索等操作。以下是sed命令的詳細解釋:

基本語法

sed [選項] '命令' 文件

常用選項

  • -n:抑制自動打印模式空間內容,通常與p命令一起使用以僅輸出特定行。
  • -e:指定要執行的命令,可以多次使用。
  • -f:從文件中讀取sed命令。
  • -i:直接修改文件內容(就地編輯)。

基本命令

  1. 替換(Substitution)

    sed 's/模式/替換內容/' 文件
    
    • s:表示替換操作。
    • /模式/:要匹配的模式。
    • /替換內容/:用于替換的內容。
    • 默認情況下,sed只替換每行中第一次匹配的內容。

    示例:將每行中的foo替換為bar

    sed 's/foo/bar/' 文件
    
  2. 刪除(Delete)

    sed 'Nd' 文件
    
    • N:要刪除的行號。
    • d:刪除命令。

    示例:刪除第3行。

    sed '3d' 文件
    
  3. 插入和追加(Insert & Append)

    • 插入(Insert):在指定行之前插入內容。

      sed 'Ni\新內容' 文件
      
      • i\:插入命令。
    • 追加(Append):在指定行之后追加內容。

      sed 'Na\新內容' 文件
      
      • a\:追加命令。

    示例:在第2行之前插入新行

    sed '2i\新行' 文件
    
  4. 打印特定行(Print)

    sed -n 'Np' 文件
    
    • -n:抑制自動打印。
    • p:打印命令。

    示例:僅打印第5行。

    sed -n '5p' 文件
    
  5. 范圍操作(Range)

    sed '起始行,結束行命令' 文件
    

    示例:替換第2到第4行中的foobar

    sed '2,4s/foo/bar/' 文件
    
  6. 多命令執行

    使用-e選項可以在一行中執行多個sed命令。

    示例:先刪除第1行,然后在第3行插入新行

    sed -e '1d' -e '3i\新行' 文件
    

高級用法

  1. 使用正則表達式

    sed支持使用正則表達式進行復雜的模式匹配和替換。

    示例:刪除所有以#開頭的行。

    sed '/^#/d' 文件
    
  2. 保持和交換(Hold and Exchange)

    sed提供了保持空間(hold space)和模式空間(pattern space)的交換操作,用于更復雜的文本處理。

    示例:交換每兩行。

    sed 'N;s/\(.*\)\n\(.*\)/\2\n\1/' 文件
    
  3. 使用變量

    可以結合Shell變量進行動態替換。

    示例:將foo替換為變量VAR的值。

    VAR="bar"
    sed "s/foo/$VAR/" 文件
    

常用示例

  1. 替換文件中所有oldnew并保存結果到新文件

    sed 's/old/new/g' 文件 > 新文件
    
  2. 刪除空行

    sed '/^$/d' 文件
    
  3. 在文件末尾追加內容

    sed '$a\追加的內容' 文件
    
  4. 在匹配行之前插入內容

    sed '/匹配模式/i\插入的內容' 文件
    
  5. 將替換結果直接應用于文件(謹慎使用)

    sed -i 's/old/new/g' 文件
    

注意事項

  • 備份文件:在使用-i選項進行就地編輯時,建議使用備份選項以防止數據丟失。

    sed -i.bak 's/old/new/g' 文件
    

    這將在修改文件之前創建一個名為文件.bak的備份。

  • 轉義字符:在使用特殊字符(如/&等)時,需要進行適當的轉義。

    sed 's/\/old\//\/new\//g' 文件
    
  • 性能考慮:對于非常大的文件,sed可能會消耗較多內存和處理時間,需根據實際情況選擇合適的工具。

總結

sed是一個功能強大的文本處理工具,適用于各種文本替換、刪除、插入和搜索任務。掌握其基本命令和高級用法,可以極大地提高文本處理的效率和效果。建議通過實際練習和資料來深入理解sed的使用方法。










🔟 參考 10

以下是關于 sed 命令的詳細解析,結合其核心功能、語法及實戰應用場景整理而成:


一、sed 基礎概念

sed(Stream Editor)是 Linux/Unix 系統中強大的流編輯器,用于對文本流進行非交互式編輯。其核心流程為:

  1. 讀取一行到模式空間(Pattern Space);
  2. 執行命令(如替換、刪除、插入等);
  3. 輸出結果(默認打印修改后的行);
  4. 循環處理下一行,直至文件末尾。

二、基本語法

sed [選項] '命令' 輸入文件
  • 常用選項
    • -n:禁止默認輸出,僅顯示處理后的行。
    • -e:允許多條命令執行(命令順序影響結果)。
    • -i:直接修改原文件(慎用,建議備份:-i.bak)。
    • -r:支持擴展正則表達式。

三、核心命令與操作

1. 地址范圍
  • 單行1(第1行)、$(最后一行)。
  • 行區間1,5(第1-5行)、5,$(第5行到最后)。
  • 正則匹配/pattern/(匹配含 pattern 的行)、\cpatternc(轉義字符匹配)。
2. 常用命令
命令功能示例
s替換文本s/old/new/g(全局替換)
d刪除行/pattern/d(刪除含 pattern 的行)
*i*插入文本/pattern/i\插入內容(匹配行前插入)
*a*追加文本/pattern/a\追加內容(匹配行后追加)
p打印行-n '/pattern/p'(僅打印匹配行)
*c*替換整行2,5c\新內容(替換第2-5行為新內容)
3. 高級命令
  • 保持與獲取緩沖區
    • h:將當前行復制到保持緩沖區。
    • H:追加到保持緩沖區。
    • g:用保持緩沖區內容覆蓋模式空間。
    • G:追加保持緩沖區內容到模式空間。
  • 分支命令
    • b label:跳轉到標簽處執行。
    • t label:條件滿足時跳轉。

四、替換操作詳解

1. 基本替換
sed 's/apple/orange/g' file.txt  # 全局替換所有 "apple" 為 "orange"
  • 標志
    • g:全局替換(默認僅替換每行第一個匹配項)。
    • p:打印替換后的行(常與 -n 配合)。
    • w file:將結果寫入文件。
2. 特殊替換
  • 引用匹配內容
    • s/\(pattern\)/\1/g:用捕獲組內容替換(如 s/\(love\)/\1able/glovable)。
    • &:在替換文本中引用完整匹配項(如 s/foo/&bar/gfoobar)。
  • 字符轉換
    • y/abc/XYZ/:逐字符替換(a→X, b→Y, c→Z)。

五、實戰應用案例

1. 批量替換
sed -i 's/www.old.com/www.new.com/g' *.html  # 批量替換所有 HTML 文件中的域名
2. 刪除注釋行
sed '/^#/d' config.sh  # 刪除以 # 開頭的注釋行
3. 添加版權信息
sed -i '1i\/*\n * Copyright 2024 *\n */' *.c  # 在所有 C 文件開頭插入版權聲明
4. 提取特定列
sed -n '2p' data.txt  # 打印第2行
sed -n '/start/,/end/p' file  # 打印 start 到 end 之間的行

六、選項與注意事項

  • 直接修改文件:使用 -i 選項時,建議備份原文件(如 sed -i.bak 's/old/new/g' file)。
  • 正則表達式:默認使用基礎正則,需用 -r 啟用擴展正則(如 +? 等元字符)。
  • 性能優化:處理大文件時,可結合 --unbuffered-u)選項減少內存占用。

七、總結

sed 通過流式處理和腳本化操作,成為文本處理的利器。掌握其核心命令(如 sdi)和地址范圍控制,可高效完成日志過濾、配置修改等任務。對于復雜需求,可結合分支、保持緩沖區等高級功能編寫腳本。



















本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/79981.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79981.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/79981.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu-24.04.2-live-server-arm64基于cloud-init實現分區自動擴容(LVM分區模式)

1. 環境 虛擬機鏡像ISO&#xff1a;ubuntu-24.04.2-live-server-arm64.iso 2. 定制cloud-init鏡像 2.1 安裝OS 基于ubuntu-24.04.2-live-server-arm64.iso&#xff0c;通過virt-manager安裝操作系統&#xff0c;語言建議選擇英文&#xff0c;分區選擇基于LVM的自動分區&…

vue3專題1------父組件中更改子組件的屬性

理解 Vue 3 中父組件如何引用子組件的屬性是一個很重要的概念。 這里涉及到 defineExpose 和 ref 這兩個關鍵點。 方法&#xff1a;使用 defineExpose 在子組件中暴露屬性&#xff0c;然后在父組件中使用 ref 獲取子組件實例并訪問暴露的屬性。 下面我將詳細解釋這個過程&…

數據倉庫分層架構解析:從理論到實戰的完整指南??

數據倉庫分層是構建高效數據體系的核心方法論。本文系統闡述ODS、DWD、DWS、ADS四層架構的設計原理&#xff0c;結合電商用戶行為分析場景&#xff0c;詳解各層功能及協作流程&#xff0c;并給出分層設計的原則與避坑指南&#xff0c;幫助讀者掌握分層架構的落地方法。 一、為什…

從零搭建一套前端開發環境

一、基礎環境搭建 1.NVM(Node Version Manager)安裝 簡介 nvm&#xff08;Node Version Manager&#xff09; 是一個用于管理多個 Node.js 版本的工具&#xff0c;允許開發者在同一臺機器上輕松安裝、切換和使用不同版本的 Node.js。它特別適合需要同時維護多個項目&#xff…

計算機組成原理筆記(十六)——4.1基本算術運算的實現

計算機中最基本的算術運算是加法運算&#xff0c;加、減、乘、除運算最終都可以歸結為加法運算。 4.1.1加法器 一、加法器的基本單元 加法器的核心單元是 全加器&#xff08;Full Adder, FA&#xff09;&#xff0c;而所有加法器都由 半加器&#xff08;Half Adder, HA&…

利用Qt創建一個模擬問答系統

界面&#xff1a; 添加了聊天顯示區域&#xff08;QTextEdit&#xff09; 添加了發送按鈕和清空對話按鈕 優化了布局和窗口大小添加了時間戳顯示 2、功能&#xff1a; 支持實時對話可以清空對話歷史 支持按回車發送消息 添加了簡單的關鍵詞匹配響應系統 交互體驗&#x…

神經光子渲染:物理級真實感圖像生成——從麥克斯韋方程到深度學習

一、技術背景與核心突破 2025年&#xff0c;神經光子渲染&#xff08;Photonic Neural Rendering, PNR&#xff09;技術通過物理光學方程與神經輻射場的深度融合&#xff0c;在AIGC檢測工具&#xff08;如GPTDetector 5.0&#xff09;的識別準確率從98%降至12%。該技術突破性地…

Linux中手動安裝7-Zip軟件文檔

7zip位于EPEL源中&#xff0c;如果服務器可以聯網或者配置了本地EPEL源則可以直接安裝 yum install p7zip p7zip-plugins -y對于無法聯網且沒有配置本地EPEL源的服務器&#xff0c;可以通過官網下載安裝包后&#xff0c;上傳至服務器&#xff0c;手動安裝 ## 下載地址&#x…

[密碼學基礎]GM/T 0018-2023 密碼設備應用接口規范深度解析:技術革新與開發者實踐

GM/T 0018-2023 密碼設備應用接口規范深度解析&#xff1a;技術革新與開發者實踐 GM/T 0018-2023《密碼設備應用接口規范》是中國密碼行業的重要標準&#xff0c;于2023年12月4日發布&#xff0c;2024年6月1日正式實施&#xff0c;替代了2012年版標準。該標準旨在規范密碼設備…

8.QT-按鈕類控件|Push Button|Radio Button|Check Box|Tool Button(C++)

Push Button 使? QPushButton 表??個按鈕.這也是當前我們最熟悉的?個控件了. QPushButton 繼承? QAbstractButton .這個類是?個抽象類.是其他按鈕的?類 在Qt Designer中也能夠看到這?的繼承關系 屬性說明text按鈕中的?本icon按鈕中的圖標iconSize按鈕中圖標的尺?sh…

CFIS-YOLO:面向邊緣設備的木材缺陷檢測輕量級網絡解析

論文地址:https://arxiv.org/pdf/2504.11305 目錄 一、論文核心貢獻 二、創新點詳解 2.1 CARAFE動態上采樣 工作原理 優勢對比 2.2 C2f_FNB輕量模塊 計算效率 2.3 Inner-SIoU損失函數 三、實驗驗證 3.1 消融實驗 3.2 對比實驗 四、應用部署 4.1 邊緣設備部署流程…

BUUCTF PWN刷題筆記(1-9)

才知道&#xff0c;由于棧對齊&#xff0c;直接動調看棧估計會錯&#xff0c;用cyclic看 1.test_your_nc NC連接一下&#xff0c;這個網站似乎直接訪問是不中的&#xff0c;懷疑是沒開啟web的端口。NC鏈接輸入cat flag就OK了&#xff0c;應該只是讓我這樣的小菜鳥培養自信用的…

C#處理網絡傳輸中不完整的數據流

1、背景 在讀取byte數組的場景&#xff08;例如&#xff1a;讀取文件、網絡傳輸數據&#xff09;中&#xff0c;特別是網絡傳輸的場景中&#xff0c;非常有可能接收了不完整的byte數組&#xff0c;在將byte數組轉換時&#xff0c;因字符的缺失/增多&#xff0c;轉為亂碼。如下…

PostgreSQL 用戶資源管理

PostgreSQL 用戶資源管理 PostgreSQL 提供了多種機制來管理和限制用戶對數據庫資源的使用&#xff0c;以下是全面的資源管理方法&#xff1a; 1 連接限制 1.1 限制最大連接數 -- 在 postgresql.conf 中設置 max_connections 100 -- 全局最大連接數-- 為特定用戶設置連接限…

新書速覽|OpenCV計算機視覺開發實踐:基于Qt C++

《OpenCV計算機視覺開發實踐:基于Qt C》 本書內容 OpenCV是計算機視覺領域的開發者必須掌握的技術。《OpenCV計算機視覺開發實踐:基于Qt C》基于 OpenCV 4.10與Qt C進行編寫&#xff0c;全面系統地介紹OpenCV的使用及實戰案例&#xff0c;并配套提供全書示例源碼、PPT課件與作…

【上位機——MFC】消息映射機制

消息映射機制 Window消息分類消息映射機制的使用代碼示例 MFC框架利用消息映射機制把消息、命令與它們的處理函數映射起來。具體實現方法是在每個能接收和處理消息的類中&#xff0c;定義一個消息和消息函數指針對照表&#xff0c;即消息映射表。 在不重寫WindowProc虛函數的大…

docker學習筆記2-最佳實踐

一、在容器中啟動mysql的最佳實踐 &#xff08;一&#xff09;查找目錄 1、mysql的配置文件路徑 /etc/mysql/conf.d 2、mysql的數據目錄 /var/lib/mysql 3、環境變量 4、端口 mysql的默認端口3306。 &#xff08;二&#xff09;啟動命令 docker run -d -p 3306:3306 …

Vue3核心源碼解析

/packages/complier-core 定位??&#xff1a;??編譯時核心??&#xff0c;處理 Vue 模板的編譯邏輯。??核心功能??&#xff1a; ??模板解析??&#xff1a;將 .vue 文件的模板語法&#xff08;HTML-like&#xff09;解析為 ??抽象語法樹 (AST)??。??轉換優化…

n8n 中文系列教程_05.如何在本機部署/安裝 n8n(詳細圖文教程)

n8n 是一款強大的開源工作流自動化工具&#xff0c;可幫助你連接各類應用與服務&#xff0c;實現自動化任務。如果你想快速體驗 n8n 的功能&#xff0c;本機部署是最簡單的方式。本教程將手把手指導你在 Windows 或 MacOS 上通過 Docker 輕松安裝和運行 n8n&#xff0c;無需服務…

【python】pyCharm常用快捷鍵使用-(2)

pyCharm常用快捷鍵使用 快速導入任意類 【CTRLALTSPACE】代碼補全【CTRLSHIFTENTER】代碼快速修正【ALTENTER】代碼調試快捷鍵