Erre a kérdésre már megvannak a válaszok :

megjegyzések

  • Sed-et szeretne, nem grep-et. Ezenkívül ' a " intelligens " idézeteket használja, így a grep a szó szerinti karakterlánc “string”, az idézőjelekkel együtt. A következőre vágyik: "string" (vagy valószínűleg még jobb, 'string', hacsak nem tervezi a paraméterbővítés használatát a keresési kifejezésben).
  • grep nem ' nem használható a karakterláncok cseréjére. Ez ' karakterláncok keresésére szolgál. Helyettesítésükhöz sed vagy awk kell.
  • Tehát valami ilyesmi lenne
  • sed – rekurzív –ignore-case " string ", " csere -string "
  • Kapcsolódó: keresés és helyettesítés a grep (nem sed) használatával – azonban használhatná a grep --recursive --files-with-matches felhasználót a sed

Válasz

Próbálja ki ezt a parancsot

grep -rl "wavbyte" somedir/ | xargs sed -i "s/wavbyte/gitship/g" 

Megteheti próbálkozzon find és sed

find /some_path -type f -exec sed -i "s/oldstring/newstring/g" {} \; 

megjegyzések

  • Cserélhetem a " gyufaszalagot " az új vagy a régi karakterlánccal, és mi van, ha akarom hogy ezt a szerver gyökérkönyvtárából tegye?
  • Például, ha a " wavbyte " " gitship " az Ubuntu szerver gyökérkönyvtára lenne:
  • find / -type f -exec sed -i ' s / wavbyte / gitship / g ' {} \;
  • Helyes, de a wavbyte a kiszolgálón nagyon sok helyen található. Hogyan fogom megjegyezni ezeket a helyszíneket, majd kézzel megyek át, és átállok a gitshipre?
  • Folytassuk ezt a beszélgetést a csevegésben .

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük