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!