Answers:
通过Windows命令提示符执行此操作比实际操作更有趣,但它是可能的。您可以使用 for /f 一次只能查看一行文件,但我知道跟踪当前行并不是一件容易的事。以下代码使用对子例程的调用来手动计算行数。使用文件名,要替换的行号和替换字符串来调用批处理文件。
@echo off
set filename=%1
set targetline=%2
set message=%3
set n=0
for /F "tokens=*" %%i in (%filename%) do call :write %%i
exit /b 0
:write
set /a n+=1
if %n%==%targetline% (echo %message%) else echo %*
exit /b 0
样本输出 replace.bat somelines.txt 3 "Hello, world!":
first line
second line
"Hello, world!"
fourth line
适用于Windows的Sed 将允许您对文本文件执行面向行的操作:
Sed(流编辑器)实际上不是真正的文本编辑器或文本 处理器。相反,它用于过滤文本,即它需要文本 输入并对其执行一些操作(或操作集) 输出修改后的文本。 Sed通常用于提取部分 使用模式匹配或替换多次出现的文件 一个文件中的字符串。