На прошлой неделе я случайно вытеснил все мои строки проекта моего затмения. Мне нужно вернуть это, и моя единственная надежда - это sed. Я пытался создавать скрипты, но не смог, потому что я новичок в sed, и это было бы очень сложной операцией. Что мне нужно сделать, так это:Поиск и замена с помощью sed
Строки в формате class.java
файл в данный момент в следующем формате (метод) Messages.getString(<key>)
. Пример:
if (new File(DataSource.DEFAULT_VS_PATH).exists()) {
for (int i = 1; i <= c; i++) {
if (!new File(DataSource.DEFAULT_VS_PATH
+ Messages.getString("VSDataSource.89") + i).exists()) { //$NON-NLS-1$
getnewvfspath = DataSource.DEFAULT_VS_PATH
+ Messages.getString("VSDataSource.90") + i; //$NON-NLS-1$
break;
}
}
}
Ключ и соответствующие строки в файле messages.properties
в следующем формате.
VSDataSource.92=No of rows in db =
VSDataSource.93=Verifying db entry :
VSDataSource.94=DB is open
VSDataSource.95=DB is closed
VSDataSource.96=Invalid db entry for
VSDataSource.97=\ removed.
key=string
Так что я нужен файл Java назад в этом формате:
if (new File(DataSource.DEFAULT_VS_PATH).exists()) {
for (int i = 1; i <= c; i++) {
if (!new File(DataSource.DEFAULT_VS_PATH
+ "String 2" + i).exists()) { //$NON-NLS-1$
getnewvfspath = DataSource.DEFAULT_VS_PATH
+ "String 1" + i; //$NON-NLS-1$
break;
}
}
}
Как я могу сделать это с sed
? Или есть более простой способ?
Так что я предполагаю, '' VSDataSource.89' является String, 2' в файле 'messages.properties'? Вы хотите заменить 'Messages.getString ('VSDataSource.xxx')' на 'yyy' из' VSDataSource.xxx = yyy' в 'messages.properties'? –
@ Mathematical.coffee да. «Key» не нужно начинать с 'VSDataSource', но он уникален для каждой строки. –
Использовать Java? Вот что похоже: http://stackoverflow.com/questions/4766602/un-externalize-strings-from-eclipse-or-intellij. Вместо того, чтобы создавать строки в файле Java, вы можете просматривать все файлы и выполнять поиск и замену регулярных выражений. –