18

aとbの間のすべての行をファイルに出力したい。

これは機能しますが、やり過ぎのようです。

head -n 900 file.txt | tail -n 100

私のUNIXの知識の欠如が、ここでの限界のようです。助言がありますか?

4

2 に答える 2

25
sed -n '800,900p' file.txt

pこれにより、800行目と900行目(つまり、合計101行)の両方を含む800行目から900行目までが印刷されます。他の行は印刷されません(-n)。

800から801および/または900から899に調整して、「800から900の間」があなたのケースで意味すると思うことを正確に実行するようにします。

于 2009-10-21T09:12:00.557 に答える
5

よりきれいな方法を見つけました:sedを使用して、aとbの間の行のみを印刷します。

sed -n -e 800,900p filename.txt

ブログ投稿から:sedを使用してテキストファイルの行を抽出する

私がそれを使用している1つの方法は、ファイルの類似したセクションを見つける(そして差分をとる)ことです:

 sed -n -e 705,830p mnetframe.css > tmp1; \
 sed -n -e 830,955p mnetframe.css > tmp2; \
 diff --side-by-side tmp1 tmp2

これにより、ファイルの類似したセクションを並べて比較できます:)

于 2009-10-21T09:16:15.677 に答える