Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 替换特定文本的批处理命令_Batch File - Fatal编程技术网

Batch file 替换特定文本的批处理命令

Batch file 替换特定文本的批处理命令,batch-file,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 我希望你们能帮我。我不是程序员,这些是3d文件,我有1000个。我已经用谷歌搜索过了,写了数百个非工作批处理文件。尝试了很久,记事本++和谁知道有多少更多没有成功。

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

具体而言,一个文件:

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

我希望你们能帮我。我不是程序员,这些是3d文件,我有1000个。我已经用谷歌搜索过了,写了数百个非工作批处理文件。尝试了很久,记事本++和谁知道有多少更多没有成功。如果程序能够做到这一点,那么我必须逐个打开文件,或者它无法插入文件名,只能插入精确的字符串…

如果您有Perl,请尝试:

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

外壳本身并不适合这种任务。您可能可以逐行阅读(例如,通过Bash中的
read
),但替换逻辑没有Perl那样精巧或强大。

谢谢您的回答。这颗珍珠能做这个吗?我的意思是有一个包含100个文件的文件夹,每个文件都必须基于这个方法。@VicziánSándor:Sure:
for I in*;做perl$i>$i.输出;完成
等。Windows外壳具有类似的结构。它的可能副本是引用主题中某些工具的副本,甚至可以在多个文件上运行。当然,还有一些文本编辑器支持在目录树的所有文件中进行替换。
perl -ne 'if (/^(ABCD ).*$/) { print "$1blabla\n"; } else { print $_; }' inputfile.txt