我正在寻找使用perl
或0,0,0:17
1,0,0:17
0,1,0:17
0,0,1:17
1,0,1:17
执行此操作的方法。我的文件中填充了这样的字符串:
0,0,-1:17.12
1,0,-1:17.12
2,0,-1:17.12
0,1,-1:17.12
1,1,-1:17.12
我的文件也填充了这样的字符串:
17
我想将17.12
的所有实例更改为17.12
,但我不想将17.12.12
的实例意外更改为{{1}}。< / p>
任何帮助?
答案 0 :(得分:1)
使用GNU sed:
sed 's/:17$/:17.12/' file
更新
sed -r 's/:17([^.]|$)/:17.12/' file
如果您要“就地”修改文件,请使用sed的选项-i
。
答案 1 :(得分:0)
一种方法是使用Perl否定前瞻声明(public static String strFormattedDate()
{
const String sstrDateFormat = "yyyyMM''MMM";
DateTime dtmLocalDate = DateTime.Now;
return dtmLocalDate.ToString(sstrDateFormat);
}
,有关详细信息,请参阅'perlre'手册页):
(?!pattern)
使用
perl -ple 's/\b17\b(?!\.12\b)/17.12/' file
更新文件。
这将在文件中的任何位置将“17”替换为“17 .12”,只要它后面没有“.12”即可。这个问题可能有些过分,但这项技术值得了解。
答案 2 :(得分:0)
假设17出现在一行的末尾,你可以在那里锚定你的模式:
s/17$/17.12/