็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿงฐ Linux sed ไฝฟ็”จๅŸบ็คŽ่ชชๆ˜Ž:ๆ–‡ๅญ—ๅ–ไปฃ、ๅˆช้™ค่ˆ‡ๅธธ็”จ็ฏ„ไพ‹

    ๐Ÿงฐ Linux sed ไฝฟ็”จๅŸบ็คŽ่ชชๆ˜Ž:ๆ–‡ๅญ—ๅ–ไปฃ、ๅˆช้™ค่ˆ‡ๅธธ็”จ็ฏ„ไพ‹

    ๆ›ดๆ–ฐๆ—ฅๆœŸ:2025 ๅนด 10 ๆœˆ 22 ๆ—ฅ | ไฝœ่€…:WWFandy


    ๐Ÿ’ก ไธ€、ไป€้บผๆ˜ฏ sed?

    sed(Stream Editor) ๆ˜ฏ Linux ไธญ็š„ๆ–‡ๅญ—ไธฒๆต็ทจ่ผฏๅ™จ, ๅฏๅœจไธๆ‰“้–‹ๆช”ๆกˆ็š„ๆƒ…ๆณไธ‹,็›ดๆŽฅๅฐๆ–‡ๅญ—้€ฒ่กŒๅ–ไปฃ、ๅˆช้™ค、ๆ’ๅ…ฅ็ญ‰ๆ“ไฝœ。 ๅฎƒๅœจ็ณป็ตฑ่‡ชๅ‹•ๅŒ–、ๆ‰นๆฌก่™•็†่ˆ‡ log ๆธ…็†ไธญ็‰นๅˆฅๅฏฆ็”จ。

    • ๐Ÿ“„ ้ฉ็”จๅ ดๆ™ฏ:ๅคง้‡ๆ–‡ๅญ—ๆช”ๆ‰นๆฌก่™•็†
    • ๐Ÿ”„ ๆ ธๅฟƒๅŠŸ่ƒฝ:ๅ–ไปฃ(substitute)、ๅˆช้™ค(delete)、ๆ’ๅ…ฅ(insert)
    • ⚙️ ๆ”ฏๆดๆญฃ่ฆ่กจ็คบๅผ(Regex)ๆ“ไฝœ

    ๐Ÿงฐ ไบŒ、ๅŸบๆœฌ่ชžๆณ•

    sed [้ธ้ …] 'ๅ‘ฝไปค' ๆช”ๆกˆ
    

    ๆœ€ๅธธ่ฆ‹็š„ๅ‘ฝไปคๆ˜ฏ s(substitute),็”จๆ–ผๆ–‡ๅญ—ๅ–ไปฃ:

    sed 's/ๅŽŸๆ–‡ๅญ—/ๆ–ฐๆ–‡ๅญ—/' ๆช”ๆกˆ
    
    • s:ๅ–ไปฃๅ‘ฝไปค(substitute)
    • /:ๅˆ†้š”็ฌฆ
    • g:ๅ…จๅŸŸๅ–ไปฃ(global)
    • i:ไธๅˆ†ๅคงๅฐๅฏซ
    ๐Ÿ’ก ไพ‹:ๅฐ‡「apple」ๅ–ไปฃ็‚บ「banana」
    sed 's/apple/banana/g' fruits.txt

    ✏️ ไธ‰、ๅธธ็”จๅ–ไปฃๆ“ไฝœ

    1️⃣ ๅ–ฎไธ€ๅ–ไปฃ

    sed 's/linux/Linux/' file.txt
    

    ๅƒ…ๅ–ไปฃๆฏ่กŒ็š„็ฌฌไธ€ๅ€‹「linux」。

    2️⃣ ๅ…จๅŸŸๅ–ไปฃ

    sed 's/linux/Linux/g' file.txt
    

    ๅ–ไปฃๆฏ่กŒไธญๆ‰€ๆœ‰็š„「linux」。

    3️⃣ ๅฟฝ็•ฅๅคงๅฐๅฏซ

    sed 's/linux/Linux/gi' file.txt
    

    ๅŒๆ™‚ๅŒน้…「Linux」「LINUX」「linux」。


    ๐Ÿงฝ ๅ››、ๆ–‡ๅญ—ๅˆช้™ค่ˆ‡็ฏฉ้ธ

    1️⃣ ๅˆช้™ค็‰นๅฎš่กŒ

    sed '3d' file.txt
    

    ๅˆช้™ค็ฌฌไธ‰่กŒ。

    2️⃣ ๅˆช้™คๅซ็‰นๅฎšๅญ—ไธฒ็š„่กŒ

    sed '/error/d' log.txt
    

    ๅˆช้™คๆ‰€ๆœ‰ๅŒ…ๅซ「error」็š„่กŒ。

    3️⃣ ไฟ็•™ๅŒน้…็š„่กŒ(ๅ–ไปฃ grep ๆ•ˆๆžœ)

    sed -n '/success/p' log.txt
    

    ๅƒ…้กฏ็คบๅŒ…ๅซ「success」็š„่กŒ。


    ⚙️ ไบ”、้€ฒ้šŽๆ‡‰็”จๆŠ€ๅทง

    1️⃣ ๅŒๆ™‚้€ฒ่กŒๅคšๅ€‹ๅ–ไปฃ

    sed -e 's/cat/dog/g' -e 's/mouse/rabbit/g' animals.txt
    

    2️⃣ ็›ดๆŽฅไฟฎๆ”นๅŽŸๆช”(in-place)

    sed -i 's/old/new/g' file.txt
    

    ็›ดๆŽฅ่ฆ†่“‹ๅŽŸๅง‹ๆช”ๆกˆ。

    3️⃣ ๅˆช้™ค็ฉบ็™ฝ่กŒ

    sed '/^$/d' text.txt
    

    4️⃣ ้กฏ็คบๆŒ‡ๅฎš็ฏ„ๅœ่กŒ

    sed -n '10,20p' file.txt
    

    ๐Ÿ” ๅ…ญ、็ตๅˆๆญฃ่ฆ่กจ็คบๅผ็ฏ„ไพ‹

    ไฝฟ็”จ Regex,ๅฏ้€ฒ่กŒๆ›ด้ˆๆดป็š„ๆจกๅผ่™•็†:

    # ๅฐ‡้–‹้ ญ็‚บ "test" ็š„่กŒๅŠ ไธŠๅ‰็ถด
    sed 's/^test/[Prefix] test/' sample.txt
    
    # ็งป้™คๆฏ่กŒ็ตๅฐพ็š„ๅˆ†่™Ÿ
    sed 's/;$//' code.txt
    
    # ๅฐ‡ๅคšๅ€‹็ฉบ็™ฝๅ–ไปฃ็‚บๅ–ฎไธ€็ฉบ็™ฝ
    sed 's/[[:space:]]\+/ /g' file.txt
    

    ๐Ÿ”— ไธƒ、ๅปถไผธ้–ฑ่ฎ€

    — WWFandy・Linux ็ณป็ตฑ่ˆ‡ๅ‘ฝไปค็ญ†่จ˜

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš