パイプで区切られた [[:alnum:]]* リストの正規表現

パイプで区切られた [[:alnum:]]* リストの正規表現

[[:alnum:]]*変数にパイプで区切られた文字列を設定するための信頼できる正規表現は何ですか?正規表現は、変数が設定されていない場合もカバーする必要があります。

承認済み:

var="abc123|A1B2C3|sDsdSS|"
var="abc123|A1B2C3"
var="abc123"
var=""

たぶん、いくつかの冗長パイプも動作するかもしれません(私のサポートgrep)。

var="|||r44fDs||fe4REee|||"

入力ファイルから特定の行を除外するには、後でスクリプトでこの「var」リストを使用します。

grep -vE "^(${var}) " input > input.filtered

私の正規表現はスペースで区切られた特殊文字も返しますが、これは私には適していないようです。

$ echo -e "sfsfds|sfsf|sfdsf|||\ns@ds|fsfsf|fssfsdf|sfsdfdfs\nsdfsdfsfs\nafafafs sdfsfd dfsfsfs\n"|grep -E '([[:alnum:]]*\|*)*'
sfsfds|sfsf|sfdsf|||
s@ds|fsfsf|fssfsdf|sfsdfdfs
sdfsdfsfs
afafafs sdfsfd dfsfsfs

$

ベストアンサー1

grep解決策:

サンプルinput.txt:

sfsfds|sfsf|sfdsf|||
s@ds|fsfsf|fssfsdf|sfsdfdfs
sdfsdfsfs
afafafs sdfsfd dfsfsfs

var='^[[:alnum:]]+[[:alnum:]\|]*$'
grep -E "$var" input.txt

出力:

sfsfds|sfsf|sfdsf|||
sdfsdfsfs

おすすめ記事