regex - sed - Remove parts of certain strings across multiple files -


from tutorial here, learned find , replace text across multiple files linux command line. example,

find . -name "*.php" -print | xargs sed -i 's/foo/bar/g' 

finds instances of 'foo' in files end '.php' , replaces such instances 'bar'.

now suppose have multiple, redundant occurrences of assert something.makeassertion want replace something.makeassertion. given something can vary, how adapt script this? tried things $ capture something variable (?) haven't figured out.

superficially, use:

find . -name '*.php' -exec \     sed -i.bak -e 's/assert\(.*\.makeassertion\)/\1/g' {} + 

the regex drops assert when there's .makeassertion later on line. find … -exec runs sed on files finds. + indicates 'group convenient number of files single command line', rather xargs without complications. alternative using gnu find , xargs be:

find . -name '*.php' -print0 |     xargs -0 sed -i.bak -e 's/assert\(.*\.makeassertion\)/\1/g' 

both these avoid problems spaces or newlines in file names.


Comments

Popular posts from this blog

jquery - How do you format the date used in the popover widget title of FullCalendar? -

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -