2011-01-17 19 views

答えて

2

のような何か:

基本的に
awk '{ prev_line=this_line; this_line=$0 } END { print prev_line }' < file 

、あなたはファイルの終わりを打つまでは、現在の1の前の行の記録を保持し、前の行を印刷します。

ちょうど最後から二番目の行の2番目のフィールドを抽出するには:コメントに対応するための

編集

awk '{ prev_f2=this_f2; this_f2=$2 } END { print prev_f2 }' < file 
+0

plとtlとは何ですか? – suvitha

+0

@Raje - 私は少し明確にするために答えを編集しました。それらはawk変数です。 –

+0

その行の2番目のフィールドを印刷したい場合は? – suvitha

1

あなたはawkでそれを行うことができますが、あなたはそれを見つけることがあります。

tail -2 inputfile | head -1 

は、より迅速な解決策になります。これは、完全なセットの最後の2行を取得し、次にそれらのうちの最初の2行を取得します。

次転写産物が、これがどのように動作するかを示しています。

pax$ echo '1 
> 2 
> 3 
> 4 
> 5' | tail -2 | head -1 
4 

あなたはawkを使用する必要がある場合は、使用することができます。

pax$ echo '1 
2 
3 
4 
5' | awk '{last = this; this = $0} END {print last}' 
4 

これは、変数の最後と現在の行を保つことによって動作しますlastthisであり、ファイルが完成するとlastが出力されます。

関連する問題