私はこのファイルを持っています:
N104 F1810
N104 F3810
N104 F810
N104 F305
そしてgrep
入力スクリプト。
スクリプト:
enter input
read input
cat file | grep $input
「810」と入力すると、次のように出力されます。
N104 F1810
N104 F3810
N104 F810
以下を出力する必要があります。
N104 F810
答え1
grep -E "(^|[^0-9])$input($|[^0-9])" < file
前のものは$input
行の始まり、数字ではなく、次のものは行の終わり、または数字ではありません。
答え2
次のようにすることもできますgrep
。
$ grep "[[:alpha:]]810" sample.txt
N104 F810
より具体的には、ユースケースは次のとおりです。
$ input=810
$ grep "[[:alpha:]]$input" < sample.txt
N104 F810
grep
モードが最初の列も処理できると期待しているのか、そうであればどの容量を処理できるのかわかりません。
$ input=104
$ grep "[[:alpha:]]$input" < sample.txt
N104 F1810
N104 F3810
N104 F810
N104 F305
grep
これはアルファベット文字セットを利用します。何が必要なのかわかりませんが、これにより、2番目の列で次の数字を検索できます。より強力な解決策が必要な場合は、正規表現を変更する必要があるかもしれません。