GNU/Linux >> Linux の 問題 >  >> Linux

sed を使用してファイルの最後の n 行を削除する方法

面白くてシンプルな sedtac 解決策:

n=4
tac file.txt | sed "1,$n{d}" | tac

注意

  • 二重引用符 " シェルが $n を評価するために必要です sed の変数 指図。一重引用符では、補間は実行されません。
  • tac cat です 反転、man 1 tac を参照
  • {} sed$n を区切るためにありますか &d (そうでない場合、シェルは存在しない $nd を補間しようとします 変数)

sed ワンライナーから:

# delete the last 10 lines of a file
sed -e :a -e '$d;N;2,10ba' -e 'P;D'   # method 1
sed -n -e :a -e '1,10!{P;N;D;};N;ba'  # method 2


sed についてはわかりません 、しかしそれは head で行うことができます :

head -n -2 myfile.txt

n のハードコーディングがオプションの場合、sed への順次呼び出しを使用できます。たとえば、最後の 3 行を削除するには、最後の 1 行を 3 回削除します。

sed '$d' file | sed '$d' | sed '$d'

Linux
  1. LinuxでTarコマンドを使用する方法

  2. Utf-8ファイルからBOMを削除する方法は?

  3. シェルコマンドを使用してASCIIファイルの最初のN行を削除するにはどうすればよいですか?

  1. LCNファイルマネージャーの使用方法

  2. ファイルの行をコマンドの引数として使用するにはどうすればよいですか?

  3. ファイルの先頭にテキストを挿入する方法は?

  1. Linuxsedコマンドの使用方法

  2. sed を使用して二重の空行のみを削除するには?

  3. 非常に大きなテキスト ファイルの最後の 2 行を効率的に削除する