GNU/Linux >> Linux の 問題 >  >> Linux

grep を bash の変数に渡す

何が起こっているかは次のとおりです:

var2=$("$var1" | (grep -Eio '\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b'))
       ^^^^^^^ Execute the program named (what is in variable var1).

次のようにする必要があります:

var2=$(echo "$var1" | grep -Eio '\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b')

または

var2=$(awk 'NR==2' $file | grep -Eio '\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b')

これは非常に複雑な方法だと思いますが、スクリプトを機能させたいだけなら、これを試してください:

#!/bin/bash

file="email.txt"

var1=$(awk 'NR==2' $file)

var2=$(echo "$var1" | grep -Eio '\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b')

echo $var2

06 が何かわかりません するはずでしたが、次の行で 19 の引数としてファイル名が必要です 、したがって、 21 を割り当てるだけです 37 の文字列値として 、 47 というコマンドを実行しないでください . 55 はコマンドではありません (テキスト ファイルの単なる 1 行です)。 77 を与える 作業に役立つもの。 82 を囲む追加の括弧


Linux
  1. Bash動的(変数)変数名?

  2. Bash スクリプトへのすべてのコマンドライン引数を 1 つの変数に格納したい

  3. Bash のリストに変数が存在するかどうかを確認する

  1. grepの基本

  2. bashで読み取り専用変数を削除するには?

  3. bash シェルでファイルのセクションを grep する方法

  1. bash の変数を持つエイリアス

  2. Bashを使用して、最後のコマンドの出力を変数に自動的にキャプチャしますか?

  3. awk の bash キャプチャ出力を配列に