行の始めと終わりに同じ単語を含むすべての行を見つけたいです。
たとえば、
goodword fgdlakj 3t sfkl 43lk fkl goodword
bad sfa;lk3t dgk;gs 34;kl bad334
singleword
希望の出力
goodword fgdlakj 3t sfkl 43lk fkl goodword
singleword
私のコードは次のとおりです
egrep "(^.+)([ ]+.*\1)$"
行に複数の単語がある場合は機能します。しかし、一つの単語を含む行も一致させたいと思います。
だから私は次のことを試みます:
egrep "(^.+)($|([ ]+.*\1)$)"
もう動作しません。理由がわからない。
ベストアンサー1
代わりに、以下を使用することをお勧めしますawk
。
awk '$1==$NF' file
このソリューションの利点は、読みやすく、2番目にフィールド区切り文字(-F
オプションを使用)を簡単に変更できることです。行の先頭と末尾のスペースの数が同じでも一致します。