<åt sidan class = "s-notice s-notice__info js-post-notice mb16" role = "status">

Den här frågan har redan svar här :

Kommentarer

  • Du vill ha sed, inte grep. Du ' använder också " smart " citat, så grep söker efter bokstavlig sträng “string”, inklusive citat. Du vill ha "string" (eller förmodligen ännu bättre, 'string', såvida du inte planerar att använda parameterutvidgning i söktermen).
  • grep isn ' t används för att ersätta strängar. Det ' används för att hitta strängar. För att ersätta dem behöver du sed eller awk.
  • Så skulle det vara ungefär som
  • sed –recursive –ignore-case " sträng ", " ersättning -sträng "
  • Relaterat: sök och ersätt med grep (inte sed) – dock du kunde använda grep --recursive --files-with-matches för att skapa en lista med filnamn som ska skickas till sed

Svar

Prova det här kommandot

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

Du kan prova find och sed

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

Kommentarer

  • Byt jag ut " matchstring " med den nya eller gamla strängen och vad händer om jag vill att göra det från rotkatalogen på servern?
  • Till exempel om jag byter ut " wavbyte " med " gitship " från rotkatalogen för Ubuntu-servern skulle det vara:
  • hitta / -typ f -exec sed -i ' s / wavbyte / gitship / g ' {} \;
  • Rätt, men wavbyte finns på många olika ställen på servern. Hur ska jag memorera alla dessa platser och sedan gå in för hand och byta till gitship?
  • Låt oss fortsätta denna diskussion i chatt .

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *