批量命令替换特定文本

时间:2012-08-23 23:02:02

标签: batch-file

我必须编写一个批处理文件来搜索文件中的特定行,并将其替换为文件名。

具体来说,一个文件:

data
data
data
ABCD xyz <- this is the line that i have to replace. abcd always the same xyz always different
data
data

我想将xyz值更改为没有扩展名的文件名。因此,如果文件是blabla.tpo,那么文件看起来像:

data
data
ABCD blabla
data
....

我希望你们能帮助我。我不是程序员,这些是3d文件,我有1000个。我已经用各种方式搜索,写了数百个非工作批处理文件。尝试FAR,记事本++,谁知道没有成功多少。如果程序可以这样做,那么我必须逐个打开文件,或者它不能插入文件名,只有精确的字符串......

1 个答案:

答案 0 :(得分:0)

如果你有的话,试试Perl:

perl -ne 'if (/^(ABCD ).*$/) { print "$1blabla\n"; } else { print $_; }' inputfile.txt

shell本身对于那种任务并不是非常好。您可以逐行阅读(例如,通过Bash中的read),但替换逻辑不像Perl那样精确或强大。