Paano Gamitin ang Sed sa Linux

Sinabi ni Sed ibig sabihin ay stream editor. Ito ay isang command line based na editor para sa Linux. Ang sikat na paggamit ng sed ay para sa pag-edit ng (mga) file bilang bahagi ng isang automation script sa Linux, gaya ng nakagawiang mga editor ay nangangailangan ng aktibong user input at hindi maaaring mag-edit ng mga file sa labas ng mga screen ng editor. Ang Sed ay kadalasang ginagamit para sa paghahanap at pagpapalit mula sa command line.

Ang ganitong uri ng text editor ay maaari ding ikategorya bilang isang hindi interactive na text editor.

Tingnan natin ang ilang karaniwang opsyon sa pag-edit ng mga file gamit ang Sed. Kukunin namin ang sumusunod na file bilang halimbawa:

$: cat test.txt Isang mabilis na kayumangging aso ang tumalon sa tamad na pusa. Linux Operating System. Ang Kagubatan malapit sa aking lugar ay may pusa pati na rin mga lobo. 

Maghanap at Palitan

Upang maghanap ng string sa isang file at palitan ng isa pang string, patakbuhin ang:

sed -i "s/cat/fox/g" test.txt

Dito, ang -i inutusan ng flag si sed na isulat ang mga pagbabago sa file. Kung wala itong watawat, sed ipapakita lang ang file na may binagong string.

Sa mga quotes, meron tayo s/cat/fox/g. Ang s ay para sa search and replace command ng sed. Pagkatapos ay mayroon kaming string na hahanapin, which is pusa. Pagkatapos ay ang string na palitan ito ng, ibig sabihin, soro. Sa wakas, mayroon kaming opsyonal g, na nagtuturo sed upang palitan ang lahat ng mga pangyayari sa lahat ng mga linya ng file. Kung wala ang g, papalitan lamang ng sed ang unang paglitaw ng pusa sa bawat linya.

Maaari ding gamitin ang regex dito.

sed -i "s/f[a-z]*\./cat\./g"

Ipasok

Upang magpasok ng teksto bago ang isang linya na may katugmang string, gamitin ang:

sed -i "/cat/i Start:" test.txt

dito, pusa ay ang hinanap na string at Magsimula: ay ang string na ilalagay bago ang linya kung saan matatagpuan ang hinanap na string.

Katulad nito, upang magpasok ng teksto pagkatapos ng isang linya, gamitin ang:

sed -i "/fox/a End." test.txt

Tanggalin

Upang tanggalin ang isang linya na naglalaman ng isang substring, gamitin ang:

sed -i "/Linux/d" test.txt

Upang tanggalin ang isang linya na may numero ng linya, hal. ang unang linya, gamitin ang:

sed -i '1d' test.txt

Pinagsasama-sama ang maramihang mga pag-andar

Upang pagsamahin ang maramihang mga function, hal. maghanap at palitan, tanggalin, sa isang utos, -e maaaring gamitin ang bandila.

sed -i -e "s/fox/cat/g" -e '2d' test.txt

? Cheers!