666
ユーザーが別のスクリプトを使用して編集できる権限を持つファイルがあります。これはうまくいきます。ファイルの最後の行を削除するスクリプトを作成する必要がありますが、sed
trisのようなものを使用して最初にファイルを作成してその場所に移動するのと同じようには機能しません。ユーザーはこれを行うことはできません。
新しいファイルをその場所に移動せずにファイルを編集して最後の行を削除する方法はありますか?
ベストアンサー1
この質問にタグが付けられたので編集する、エディタを使用してファイルを内部で編集する方法は次のとおりですed
。
printf '%s\n' d w q | ed -s file
を使用して編集セッションを開始すると、ed
エディタは常に開いているファイルの最後の行にユーザーを配置します。ファイルの最後の行を削除するには、削除できます。現在のlineを使用してd
変更されたバッファをファイルに書き換えてからw
終了しますq
。ほとんどのエディタの実装ed
(BusyBoxを除く)では、次の代わりにed
非標準の組み合わせコマンドを使用できます。wq
w
q
これは新しいファイルを生成しません(結果ファイルは元のファイルと同じinode番号を持ちます)。