2017-03-29 149 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

相關問題