追加斜杠一定行的末尾在一个文件

问题描述:

我有一个文件(Flags.txt),看起来像这样:追加斜杠一定行的末尾在一个文件

... 

C_INCLUDES = ... ... .../xxx 
... 

CXX_INCLUDES = ... ... .../yyy 

其中具有C_INCLUDES线可与任何字符串(这里e.g xxx)结束。

最后,该文件应是这样的:

... 

C_INCLUDES = ... ... .../xxx/ 

... 

CXX_INCLUDES = ... ... .../yyy 

所以我想使用Windows批处理文件(不能使用sedawk)来搜索名称C_INCLUDES,并在追加该行的结尾是正斜杠(但可以是任何smbol,例如“xxxz”或“xxx!”)?

我试图从溶液:

https://social.technet.microsoft.com/Forums/scriptcenter/en-US/fa09e27d-9f6b-4d4e-adda-f0663e0a9dde/append-string-to-text-file-at-end-of-line-starting-with-blah?forum=ITCG

$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 

但它不工作

感谢

+0

你知道那些是正斜杠吗?请确认您想要前进还是后退斜线。还请添加您尝试过的代码。确保你提供的信息不是对你的问题的评论或回答。 – Compo

+3

来自其他网站上的答案的发布代码是__ _ _ _ _ _ _ _ _ _ _ _ _脚本代码,而_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _命令行是__not__命令行。 – Mofi

+2

请参阅[如何使用Windows命令行环境查找和替换文件中的文本?](http://*.com/questions/60034/)请特别关注[由dbenham编写的答案](http ://*.com/a/16735079/3074564)。带有正则表达式搜索和替换字符串的'jrepl.bat'解决方案可以用于此任务。 – Mofi

你意味着你不能使用第三方(非本地)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

+0

非常感谢! – Zlatan