2

4 GB より大きいファイルがありますが、メモ帳 ++ でファイルを開くことができず、マクロ機能を使用してプロセスを記録し、ファイルの最後まで繰り返すことができないため、私にとっては悪いニュースです。私がやりたいのは、テキストの最初の 20 行を残し、次の 80 行を削除し、そのプロセスをファイルの最後まで繰り返すということです。

これを行う最も簡単な方法は何ですか?Linuxサーバーでこれらのファイルを見ているので、何らかのスクリプトを実行するのが最も簡単な方法ですか、それともviでこれを行う方法を誰かが知っているのでしょうか? (したがって、不十分なタグ付け)

前もって感謝します

4

2 に答える 2

9

awkこれはかなり簡単に行うことができます:

awk '(NR-1)%100 < 20' bigfile.txt
于 2013-03-05T21:37:08.297 に答える
2

私は awk ソリューションを使用しますが、sed で同じことを行う方法の 1 つを次に示します。

seq 20 | sed 's/$/~100p/' | sed -nf - bigfile.txt

テスト:

seq 20 | sed 's/$/~100p/' | sed -nf - <(seq 200)

出力:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
于 2013-03-05T21:41:44.367 に答える