Я пытаюсь использовать регулярное выражение для добавления атрибута в XML-файл.Attr is item_id = Строка, которую я пытаюсь разобрать, выглядит следующим образом:
<Item acl_bits="0" active_seq="1" archive_date="" archive_info="" backup_date="" bom_view_tags="" configuration_object_tag="" creation_date="2007-09-12T20:28:24Z" date_released="" ead_paragraph="" elemId="id5017" fnd0InProcess="N" fnd0OriginalLocationCode="" fnd0RevisionId="" fnd0is_monolithic="" global_alt_list="" gov_classification="" has_variant_module="N" ip_classification="" is_configuration_item="N" is_vi="N" island_id="3517" item_id="SAN12542" last_mod_date="2007-09-12T20:30:59Z" last_mod_user="#id32" license_list="" lsd="" object_application="Teamcenter Engineering" object_desc="" object_name="C-rear_shell_intercostal_cutter" object_properties="0" object_type="Part-Ideas" owning_group="#id120" owning_organization="" owning_project="" owning_user="#id32" parent_uid="" pid="81" preferred_global_alt="" process_stage_list="" project_list="#id86" puid="2vHAAAxoxieWWC" release_status_list="" revision_limit="1" revision_number="0" timestamp="qSLAAAlkxieWWC" uom_tag="" wso_thread=""/>
Да, я знаю много мусора здесь ... но в любом случае команда sed, которую я использую, выглядит так:
/ item_id / s / item_id = (\ w *) / item_id = \ U \ 1 / g
Теперь, кажется, это работает нормально, если я что-то делаюкак в оболочке cygwin:попробуйте это на MacOS, строка не подставляется ... также (и что более важно), когда я пытаюсь использовать скрипт команд sed, подобный этому (в оболочке cygwin):
1, / ^ END / {/ item_id / s / item_id = (\ w *) / item_id = \ U \ 1 / g}
Я также не получаю поле в верхнем регистре.
Я полностью сбит с толкупочему это не сработает ...
Мне действительно все равно, что с Mac) Я только что упомянул это для полноты) но мне нужен мой скрипт sed для работы, потому что я также делаю кучудругие замены (они все работают) там.
Для справки, вот полный sedscript, который я использую:
1,/^END/{
/item_id/s/item_id=\(\w*\)/item_id=\U\1/g
/item_revision_id/s/item_revision_id=\(\w*\)/item_revision_id=\U\1/g
/infodba/s/infodba,Project Administrator/mrslate,Project Administrator/g
/fred/s/fred,Project Administrator/mrslate,Project Administrator/g
/barney/s/barney,Project Administrator/mrslate,Project Administrator/g
/dino/s/dino,Project Administrator/mrslate,Project Administrator/g
/wilma/s/wilma,Project Administrator/mrslate,Project Administrator/g
s/role_name="Ceramics"/role_name="DesignEngineer"/g
s/role_name="Manager"/role_name="Management"/g
s/role_name="Document Control Temp"/role_name="DataManager"/g
s/role_name="Assembly Technician"/role_name="Viewer"/g
s/role_name="Document Control"/role_name="DataManager"/g
s/role_name="Analysis"/role_name="AnalysisEngineer"/g
s/role_name="Manufacturing"/role_name="MfgEngineer"/g
/barney/s/dba,barney,DBA/dba,mrslate,DBA/g
/wilma/s/dba,wilma,DBA/dba,mrslate,DBA/g
/fred/s/dba,fred,DBA/dba,mrslate,DBA/g
/betty/s/Engineering,betty,Designer/Design.Bedrock,Migrator,DesignEngineer/g
}