-1

私はこのコードを書いて、seat.txt から選択した行をふるいにかけたいと思っています。しかし、うまくいかないようです。助けてください!

echo `sed -n "/$NUM/p" seating.txt`

次のようにファイルします。

29;,A2,A3,A1,E2,B1,B2,C1,C3,C2,D1,D2,D3,E1,E3,A4,E4,B3,B4,C4,D4
29;,A1,A2,A3,A4,B2,E4,C3,B3,D3,D2,E1,E2,C2,B4,C4,D4,C1,D1,E3,B1
43;,A2,D4,C3,B3,A4,E4
44;,A1,D4,E2,C3,A2
44;,A1,B2,C3,D4,A4
4

2 に答える 2

3

何を達成しようとしているのかが明確ではありません。発生する行を印刷しようとしている$NUM場合、コードは正常に機能します。

NUM=29
sed -n "/^$NUM/p" file

結果:

29;,A2,A3,A1,E2,B1,B2,C1,C3,C2,D1,D2,D3,E1,E3,A4,E4,B3,B4,C4,D4
29;,A1,A2,A3,A4,B2,E4,C3,B3,D3,D2,E1,E2,C2,B4,C4,D4,C1,D1,E3,B1

行番号を渡そうとしている場合は、次のことを試してください。

NUM=4
sed -n "$NUM{p}" file

結果:

44;,A1,D4,E2,C3,A2
于 2012-11-23T02:40:41.073 に答える
1

$NUM を含む行が必要な場合は、次のようになります。

grep "$NUM" file

最初のセミコロンの前に正確に $NUM の行が必要な場合:

grep "^$NUM;" file

行番号 $NUM が必要な場合は、次のようになります。

awk -v num="$NUM" 'NR==num' file

何か他のものが必要な場合は、投稿したサンプル入力に合わせて期待される出力を投稿してください。

于 2012-11-23T04:13:34.730 に答える