追加斜杠一定行的末尾在一个文件
我有一个文件(Flags.txt
),看起来像这样:追加斜杠一定行的末尾在一个文件
...
C_INCLUDES = ... ... .../xxx
...
CXX_INCLUDES = ... ... .../yyy
其中具有C_INCLUDES
线可与任何字符串(这里e.g xxx
)结束。
最后,该文件应是这样的:
...
C_INCLUDES = ... ... .../xxx/
...
CXX_INCLUDES = ... ... .../yyy
所以我想使用Windows批处理文件(不能使用sed
或awk
)来搜索名称C_INCLUDES
,并在追加该行的结尾是正斜杠(但可以是任何smbol,例如“xxxz”或“xxx!”)?
我试图从溶液:
$original = "flags.txt"
$tempfile = "tmp.txt"
get-content $original | foreach-object {
if ($_ -match "^C_INCLUDES") {
$_ + "/" >> $tempfile
}
else {
$_ >> $tempfile
}
}
copy-item $tempfile $original
remove-item $tempfile
但它不工作
感谢
你意味着你不能使用第三方(非本地)EXE文件,如sed。但是你可以使用批处理文件。
所以你应该没有问题,使用JREPL.BAT - a regular expression find/replace text processing utility。 JREPL是纯粹的脚本(混合批处理/ JScript),可以在任何Windows机器上从XP开始运行 - 不需要任何第三方exe文件。
完整的文档可从命令行通过jrepl /?
或jrepl /??
获取分页帮助。
一旦你有JREPL.BAT,那么下面的一个班轮是所有需要的。它会查找以C_INCLUDES
开头并且没有以/
结尾的行,并将/
附加到任何匹配的行。
jrepl "^C_INCLUDES .*(?=.$)[^/]" "$&/" /f "Flags.txt" /o -
由于JREPL是一个批处理脚本,你必须,如果你把另一个批处理脚本中的命令使用call jrepl
。
非常感谢! – Zlatan
你知道那些是正斜杠吗?请确认您想要前进还是后退斜线。还请添加您尝试过的代码。确保你提供的信息不是对你的问题的评论或回答。 – Compo
来自其他网站上的答案的发布代码是__ _ _ _ _ _ _ _ _ _ _ _ _脚本代码,而_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _命令行是__not__命令行。 – Mofi
请参阅[如何使用Windows命令行环境查找和替换文件中的文本?](http://stackoverflow.com/questions/60034/)请特别关注[由dbenham编写的答案](http ://stackoverflow.com/a/16735079/3074564)。带有正则表达式搜索和替换字符串的'jrepl.bat'解决方案可以用于此任务。 – Mofi