๐งฐ 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
๐ ไธ、ๅปถไผธ้ฑ่ฎ
- ๐ Linux ls ๆไปคไฝฟ็จๆๅญธ:ๆชๆกๅ่กจ่ๆๅบๆๅทง
- ๐ Linux ๆฌ้ๆไฝๆๅญธ:rwx、chmod、chown ๅฎๆด่ชชๆ
- ⚙️ Linux ๆ่ฝ็ฃๆง่็ถ้ ธๅๆ:top、htop、iotop、nmon ๅฏฆๆฐ
— WWFandy・Linux ็ณป็ตฑ่ๅฝไปค็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ