Я хочу заменить часть имени файла указанным символом.
Например:
$ ls
SubNetwork=RNCRAM955E,MeContext=RNCRAM955E_statsfile.xml
Я хочу заменить RNCRAM955E
на RNCMST954E
Здесьприходит мой ожидаемый результат.
$ ls
SubNetwork=RNCMST954E,MeContext=RNCMST954E_statsfile.xml
и ниже мой код:
$ find ./ -name '*.xml' | xargs -i echo mv {} {} | sed 's/RNCRAM955E/RNCMST954E/3g' | sh
mv ./SubNetwork=RNCRAM955E,MeContext=RNCRAM955E_statsfile.xml ./SubNetwork=RNCMST954E,MeContext=RNCMST954E_statsfile.xml
mv ./SubNetwork=RNCRAM955E,MeContext=RNCRAM955E_statsfile.xml ./SubNetwork=RNCMST954E,MeContext=RNCMST954E_statsfile.xml
mv ./SubNetwork=RNCRAM955E,MeContext=RNCRAM955E_statsfile.xml ./SubNetwork=RNCMST954E,MeContext=RNCMST954E_statsfile.xml
mv ./SubNetwork=RNCRAM955E,MeContext=RNCRAM955E_statsfile.xml ./SubNetwork=RNCMST954E,MeContext=RNCMST954E_statsfile.xml
Я не могу понять, что именно код 3g
точно означает.
По моему мнению: sed s/xx/xx/3g
означает замену шаблона совпадения с 3-го до конца, а sed s/xx/xx/3
означает замену только 3-го сопоставления?Кстати, что именно означает |sh
, я думаю, что после echo
команда исполняется как оболочка, верно?