Hanapin at Palitan teksto ay maaaring maging isang simpleng gawain gamit ang mga editor ng teksto mas basic. Ngunit ano ang mangyayari kapag kailangan mong gawin ang parehong gawain sa maraming mga file nang sabay?
Kaya, ang mga bagay ay nagiging kumplikado doon ... o hindi gaanong gaanong. |
Sa sumusunod na halimbawa, gagamitin namin ang sed upang mapalitan ang lahat ng mga paglitaw ng salitang "mongo" ng salitang "aurelio" sa lahat ng mga file na may extension .txt sa / home / user / myfolder / folder.
hanapin / tahanan / gumagamit / myfolder / -name * .txt -exec sed -i "s / mongo / aurelio / g" {} \;
Ganon kadali…
Bago matapos, sulit na banggitin na pinapayagan ng ilang mga editor ng teksto ang operasyong ito na maisagawa gamit ang isang graphic na interface. Bukod sa iba pa, sulit na i-highlight ang Jedit, Geany, Regexxer, atbp.
super
Gumagamit ako ng Gedit
gedit para sa maraming mga file ??? bilang ???
Paano ko mailalagay ang isang grep sa pagitan ng ai?
Ang kailangan ko ay gawin ang sumusunod, maghanap sa loob ng bahay para sa lahat ng mga file na tinatawag na index.html at naglalaman ng salitang "XXXXXXX", at palitan ito ng "YYYYYYYYYY", dahil magagawa ito upang maghanap lamang ito sa ang mga file na talagang may string?
Maraming salamat !
Gumagamit din ako ng Gedit, ngunit maraming salamat
Nawawala ang argumento para sa exec. Ang tamang code ay:
hanapin / tahanan / gumagamit / myfolder / -name * .txt -exec sed -i "s / mongo / aurelio / g" {} \;
Pagbati
Tama ka! Salamat!
Naitama ko na. : =)
Sinubukan ko lang ito (bilang ROOT):
hanapin / usr / magbahagi / mga icon / ACYL-Allgray / -name * .svg -exec sed -i "s / 666666/000000 / g" {} \;
upang baguhin ang kulay ng isang buong hanay ng mga icon. Ang totoo ay ito ay isang napakalakas na utos, karaniwang ang gawaing ito ay magdadala sa akin ng maraming oras sa pag-edit ng file sa pamamagitan ng file.
Ipasok ang teksto sa maraming mga file, ayon sa numero ng linya, sa aking kaso na linya 2 (2i), sa centos linux
find / home // public_html / res / -name -exec sed -i "2i \;" {} \;
hindi lahat ng code ay lumabas kaya't muling isinumite ko:
find / home / user / public_html / res / -name filename.ext -exec sed -i "2i \ text upang ipasok ang" {} \;