これについてのアイデアがあります。逆参照を使用する必要がありますgrep
が、これが私が得ることができる最も近いものです。
grep "^[a-zA-z]\$[a-zA-z]\
私の問題は、最初の文字==を最後の文字として確認する方法がわからないことです。
ベストアンサー1
あなたはする必要があります
grep -E '^([a-zA-Z]).*\1$'
最初の文字をキャプチャし(...)
、逆参照を最後の文字として使用し、その間の他のすべての文字はスキップされます.*
。この-E
スイッチは拡張正規表現一致するため、コマンドの範囲内でキャプチャグループをエスケープする必要はありませんgrep
。ただし、次のようにして移植性を向上させることもできます。
grep '^\([a-zA-Z]\).*\1$'
単一の文字を含む行のみを出力したい場合(ただし、同じ最初の文字と最後の文字とも呼ばれます)、オプションでその文字の存在を定義できます。
grep -- '^\([a-zA-Z]\)\(.*\1\)\{0,1\}$'
\{0,1\}
一致しないか、一度だけ一致模様 .*\1
以上。
またはこれをそれぞれ一致させてください。一つ上記のバイト文字は次のとおりです。
grep -- '^\(.\)\(.*\1\)\{0,1\}$'
(Basic-Regular-Expression、BRE)パターンマッチングはデフォルトでgrep
使用されます。ここで、、、、--basic-regexp
などのメタ文字は特別な意味を失い、文字通り一致します。変換定義タイプを使用する必要があります。 、およびまたは単に切り替えてください。?
+
{
|
(
)
\?
\+
\{
\|
\(
\)
パターンマッチングEREに接続します-E
(ただし、POSIX EREには逆参照はありません)。
文字列の長さが同じであることを確認する窒素:
grep -- '^\([a-zA-Z]\{N-HERE\}\)\(.*\1\)\{0,1\}$'
絵サム文字の長さ:
grep -- '^\([a-zA-Z]\{3\}\)\(.*\1\)\{0,1\}$'
前述のように、次の行が返されます。サム(窒素一般的に)文字の長さxxx
、必要でない場合は次のように変更してください。
grep -- '^\([a-zA-Z]\{3\}\).*\1$'