フィールドから特定の文字列を選択

フィールドから特定の文字列を選択

私はこのファイルを持っています:

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番目の列で次の数字を検索できます。より強力な解決策が必要な場合は、正規表現を変更する必要があるかもしれません。

引用する

関連情報