0

したがって、私の問題は次のとおりです。たくさんのファイルがあり、これらの各ファイルの特定の行 (すべてのファイルで同じ行) からの情報のみが必要です。例: ファイル example_1.dat~example_10.dat の 10 行目のコンテンツが必要で、それを > test.dat に保存したい

使ってみました: head -n 5 example_*.dat > test.dat. しかし、これにより、行だけでなく、選択した行までのすべての情報が得られます。助けてください。

4

4 に答える 4

1
$ for f in *.dat ; do sed -n '5p' $f >> test.dat ; done

このコードは次のことを行います。

.dat で終わるディレクトリ内の foreach ファイル f。ファイルの 5 行目に sed を使用し、test.dat に書き込みます。">>" は、ファイルの下部に行が存在する場合に追加します。

于 2013-08-14T05:32:18.833 に答える
1

headとの組み合わせを使用tailして、必要な行にズームします。例えば、head -n 5 file | tail -n 1

forループを使用して、複数のファイルで実行できます

for f in *.dat ; do head -n 5 $f | tail -n 1 >> test.dat ; done

PS:ループを実行する前に、test.datファイル ( )を消去することを忘れないでください。> test.datそれ以外の場合は、以前の実行の結果も得られます。

于 2013-08-14T04:43:29.050 に答える