
正規表現文字列に一致する行を抽出する方法^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