2017-03-29 8 views
0

まず、私は韓国にいます。だから私の英語はとても悪いです。他の行を編集せずにテキストファイルを編集する方法(cmd)

1行目と2行目に触れずに3行目を編集したいと思います。

前:

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の「エコー」と「サンプル」の事を書きではありません。 3行目の 'echo'のみです。 どうすればいいですか?

+0

私はあなたに[cygwin](http://cygwin.com)をインストールし、sedとawkのような標準の* nixツールを使うことをお勧めします。 –

+1

'cmd'でファイルを"編集 "することはできません。ファイル全体を([for](https://ss64.com/nt/for_f.html)で)1行ずつ読み込んで書き直す必要があります。 – Stephan

答えて

0

あなたがここにあなたの質問に対する答えを見つけることができますあなたの場合は

bash: replace an entire line in a text file

を、使用するコマンドは次のとおりです。

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

申し訳ありませんが、私はWindowsのコマンドプロンプトについて話しています。動いていない。 windowsコマンドプロンプトコマンドについて知っていますか? – Korean

0

これはCで2行目を編集します:\ test.txt、3行目を編集したい行番号に変更してください。

@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

関連する問題