2017-03-29 118 views
0

首先,我在韩国。所以我的英语会很糟糕。如何在不编辑其他行的情况下编辑文本文件(cmd)

我想编辑第三行,不用触摸第一行和第二行。

前:

echo sample 
echo sample 
echo sample 
echo sample 

后:

echo sample 
echo sample 
echo hello 
echo sample 

就这样。 不使用这个命令:

echo echo sample> test.txt 
echo echo sample> test.txt 
echo echo hello> test.txt 
echo echo sample> test.txt 

所以,我的意思是不是写1,2,4的“回声”和“样本”的事情。 只有第三行的'回声'。 我能做什么?

+0

我建议你[安装cygwin](http://cygwin.com),然后你可以使用像sed和awk这样的标准* nix工具,这样的任务很简单。 –

+1

无法在'cmd'中“编辑”文件。您必须逐行阅读并重写整个文件(使用[for](https://ss64.com/nt/for_f.html))。 – Stephan

回答

0

你可以找到答案,你的问题在这里:

bash: replace an entire line in a text file

在你的情况下,要使用的命令是:

sed -i '3s/.*/echo hello/' test.txt 
+0

对不起,但我正在谈论Windows命令提示符。它不工作。 你可以知道关于Windows命令提示命令吗? – Korean

0

这将用C编辑二号线:\ test.txt,只需将第三行更改为您想要编辑的行号即可。

@echo off 
setlocal enabledelayedexpansion 
set i=1 
for /f %%a in (C:\test.txt) do (
if !i!==2 (
echo your new line >>C:\test2.txt 
) else (
echo %%a >>C:\test2.txt 
) 
set /a i+=1 
) 
del C:\test.txt 
ren C:\test2.txt test.txt 
+0

这将忽略空行。 – Stephan

+0

@Stephan是的,但我要通过OP的例子,除非他们说,否则它可能没有任何 –

+0

只是一个说明。如果任何新手绊倒了这个答案,你可以肯定他在错误的地方有一些空行...... :) – Stephan

相关问题