4

UNIX で、ファイルの特定の行を印刷することはできますか? たとえば、 file の 10 行目を印刷したいと思いますexample.ccatlsで試してみましawkたが、どうやらこれらには機能がないか、正しく読み取ることができませんman:-)。

4

7 に答える 7

9

awkの使用:

awk 'NR==10' file

sedの使用:

sed '10!d' file
于 2013-01-14T10:11:38.390 に答える
7
sed -n '10{p;q;}' example.c

の10行目を印刷example.cします。

于 2013-01-14T10:11:00.867 に答える
4

頭と尾を試してみてください。線の量と開始位置を指定できます。

3 行目を取得するには:

head -n 3 yourfile.c | tail -n 1
于 2013-01-14T10:06:26.613 に答える
2

残念ながら、指定された行番号がファイルの合計行数よりも大きい場合、head/を使用する他のすべてのソリューションは正しく機能しません。tail

これは行番号 N を出力するか、N が総行数を超えている場合は何も出力しません:

grep "" file | grep "^20:"

出力から行番号を切り取りたい場合は、次のようにパイプしますsed:

grep "" file | grep "^20:" | sed 's/^20://'
于 2013-01-14T10:20:03.460 に答える
2

head -n 10 /tmp/asdf | tail -n 1

于 2013-01-14T10:07:33.670 に答える
1

これを試して:

cat -n <yourfile> | grep ^[[:space:]]*<NUMBER>[[:space:]].*$

cat -n ファイルに番号を付ける

grep の正規表現は、番号が付けられた行を検索します;-) コメントに記載されているように、元のものが一致しませんでした。現在のものは完全一致を探します。- つまり、特定の cas では、任意の量 ( ) のスペースで始まり、その後にスペースが続き、その後に任意の数 (. )が続く行が必要です。

誰かがこの正規表現を試してみて、まったく理解できなかった場合に備えて、開始するための優れたチュートリアルを次に示します: http://regex.learncodethehardway.org/book/ (難しい例として python 正規表現を使用しています)。

于 2013-01-14T10:15:15.193 に答える
0

これはあなたのために働くかもしれません:

sed '10q;d' file
于 2013-01-14T19:38:46.693 に答える