だから私はすべて8で終わり、いくつかの中に8を持つ複数行の文字があります。特に、ファイルから途中に8がある行を抽出したいと思います。ここに8がある行の例があります。途中で次のようになります
lcl|XM_024182377.1_cds_XP_024038145.1_1 AFASYYTQL TFRVTNDHDIVPHLPPYSYFPQKTYHHFPREVWLYHIGLGSLIYEVEKICDGSGE DPCSRSVTGNSVSDHLVYFGDL SD AAGNHF8
答え1
複数の条件が必要な場合にawk
使用する方が簡単です。sed
awk '!/8$/ && /8/' file
これにより、次の2つの基準に従って印刷する行が選択されます。確かに固定正規表現8$
の合計と一致するマッチ8
。 sedでも同じロジックsed -n '/8$/!{/8/p;}'
:
ANDのロジックsed
は若干異なります。
sed '/8$/d; /8/!d' file
8$
一致または一致しない行を削除して行をフィルタリングします8
。 awkでも同じロジックawk '/8$/ || !/8/ {next} 1'
:
またはgrep
x2:
grep -v 8$ <file | grep 8
8で終わる行は最初のパスで拒否されます。 2番目のステップでは、8を含む行を選択します。
答え2
8
あなたの要件は不明ですが、最後に8があるかどうかにかかわらず、途中で行を印刷するには、これが私が要求するものです。考えるあなたが望むもの:
grep '8.' file
答え3
そう:
grep -E '8.+$' <FILE>