我的文件结构如下:
msgid ""
msgstr ""
"PO-Revision-Date: 2013-04-08 10:12:14+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: GlotPress/0.1\n"
"Project-Id-Version: Modern Theme\n"
#: 404.php:34
msgid "Page not found"
msgstr "Page non trouvée"
#: alert-form.php:6
msgid "You have sucessfully subscribed to the alert"
msgstr "Vous vous êtes inscrit avec succès à cette alerte"
#: alert-form.php:7 user-change_email.php:42
msgid "Invalid email address"
msgstr "Adresse e-mail incorrecte"
#: alert-form.php:8
msgid "There was a problem with the alert"
msgstr "Il y a un problème avec cette alerte"
#: alert-form.php:39
msgid "Subscribe to this search"
msgstr "Abonnez vous à cette recherche"
#: alert-form.php:55
msgid "Subscribe now"
msgstr "Abonnez-vous maintenant"
#: contact.php:35
msgid "Contact us"
msgstr "Contactez-nous"
我想交换行的内容,而不是包含字符串msgid,括号内的内容,在包含msgstr的连续行之间,括号之间,你能不能给我提示写脚本或做它通过命令行?
答案 0 :(得分:2)
您可以使用awk
和sed
执行此操作。以下是作品。
awk '/msg.*/{getline x;print x;}1' file | sed -e 's/msgid/msgidt/g' -e 's/msgstr/msgid/g' -e 's/msgidt/msgstr/g'
awk
交换与正则表达式msg.*
匹配的行并将其传递给sed
。首先sed
将msgid
重命名为临时msgidt
,然后将msgstr
重命名为msgid
,最后将msgidt
重命名为msgid
。< / p>
结果:
msgid ""
msgstr ""
"PO-Revision-Date: 2013-04-08 10:12:14+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: GlotPress/0.1\n"
"Project-Id-Version: Modern Theme\n"
#: 404.php:34
msgid "Page non trouvee"
msgstr "Page not found"
#: alert-form.php:6
msgid "Vous vous Cetes inscrit avec succsess cette alerte"
msgstr "You have sucessfully subscribed to the alert"
#: alert-form.php:7 user-change_email.php:42
msgid "Adresse e-mail incorrecte"
msgstr "Invalid email address"
#: alert-form.php:8
msgid "Il y a un problC(me avec cette alerte"
msgstr "There was a problem with the alert"
#: alert-form.php:39
msgid "Abonnez vous C cette recherche"
msgstr "Subscribe to this search"
#: alert-form.php:55
msgid "Abonnez-vous maintenant"
msgstr "Subscribe now"
#: contact.php:35
msgid "Contactez-nous"
msgstr "Contact us"