ed(ラインエディタ)で編集する新しいファイルを作成するには?

ed(ラインエディタ)で編集する新しいファイルを作成するには?

標準行エディタで編集するために新しいファイルを開くことはできません。ただし、既存のファイルを開くことはできます。

以下は私が受け取ったエラーのスクリーンショットです。

私が言及しているユーザーガイドでは、edは '?barney'、つまり?[new_file_name];を返す必要があると述べていますが、私の場合は既存のファイルを検索します。

答え1

ちょうどw書いてください。ed書き込み用のファイルが生成されます。

$ ed fred
fred: No such file or directory
w
0

?
q
$ ls fred
fred

答え2

あなたが読んでいるテキストはおそらくについてですed。診断出力は、すべてのエディタ実装で部分的にのみ一貫しています。使用しているエディタは、現在の実装が期待どおりに機能します。つまり、barney見つからないという簡単な診断メッセージを出力し、「コマンドモード」に切り替えます。診断メッセージの詳細情報に加えて説明する、あなたのテキストと同じです。


編集者にはed「基本ファイル名」という概念があります。以下を使用してエディタをed barney起動すると、ファイルが存在しない場合に作成されます。barneyw

上記と質問に示すように、コマンドラインでデフォルトのファイル名を設定できますが、コマンドを使用して設定することもできますf。引数がない場合、このfコマンドはデフォルトのファイル名を端末に印刷します。

$ ed -p '*' myfile
myfile: No such file or directory
*f
myfile
*f my-other-file
my-other-file
*w
0
*q
$ ls -l my-other-file
-rw-r--r--  1 myself  myself  0 Nov 17 11:41 my-other-file

デフォルトのファイル名がない場合(ファイル名を指定せずにエディタを起動した場合)、ファイルへのf somename書き込みを使用する前にデフォルトのファイル名を設定する必要があるか、wファイル名をw引数として指定できます。wデフォルトのファイル名が設定されていない場合、filenameパラメータと一緒に使用すると、デフォルトのファイル名がその名前に設定されます。

w myfileここでデフォルトのファイル名を変更してください。

$ ed -p '*'
*w
?
*w myfile
0
*f
myfile
*q

w bar-fileするいいえここでデフォルトのファイル名を変更します(コマンドラインにすでに設定されているため)。

$ ed -p '*' foo-file
foo-file: No such file or directory
*w bar-file
0
*f
foo-file
*q

関連情報