文字列を入力として使用して、テキストから行を抽出します。

文字列を入力として使用して、テキストから行を抽出します。

正規表現文字列に一致する行を抽出する方法^li テキスト(ファイルではない)から以下では何を使用しますかsed

 linux
 loan
 litmus
 launch

私は試しましたが、grep引用符付きテキスト(テキストファイルではない)内で検索​​する方法が見つかりませんでした。

grep -n -i "^li" "linux
loan
litmus
launch" 

返品No such file or directory。可能であれば、検索する前にこのテキストをファイルに保存したくありません。

答え1

あなたはここに文字列( <<<) ここに文字列が入力として渡されgrep、ここの文字列はgrep操作できるファイル記述子を返します。

$ grep -ni "^li" <<<"linux
loan
litmus
launch"

出力:

1:linux
3:litmus

シェルがこの文字列をサポートしていない場合(多くのシェルではサポートされていない)、文字列を印刷して次にパイプすることができますgrep

$ echo "linux
loan
litmus
launch" | grep -n -i "^li"
1:linux
3:litmus

またはheredoc(<<)を使用してください。

$ grep -ni "^li" <<EOF
> linux
> loan
> litmus
> launch
> EOF
1:linux
3:litmus

答え2

次のことができます。

grep \^li

その後、コンテンツの入力を開始します。grep端末を読みます。sed同じことをします。CTRL+Dこれを停止し、... >saved_output_file出力をリダイレクトして効果を保存するために使用されます。

答え3

あなたと一緒にsed使用することができますsed -n '/^li/p'

@heemaylの例を使う

$ echo "linux
> loan
> litmus
> launch" | sed -n '/^li/p'
linux
litmus

関連情報