ファイルから数字と文字を削除する

ファイルから数字と文字を削除する

次のファイルがあります。

chs_de_le_q1gg
dsdas_212
sdasd_4567
weqwe_32323
dasds_232322
rr_F3r4
we_ff
asdasd_1_fff
sdfsd_tr
dsd_fr

長さが4〜8で終わる行を削除する必要があります。 ff と fr で終わる行も削除できます。

数字と文字を同時に入力することはできません


cat test.txt |  grep  -vE "_[0-9]|[^0-9][0-9]{1,8}$\|_ff$|_fr$"

誰でも助けることができますか?

出力

dsdas_212
chs_de_le_q1gg
rr_F3r4
asdasd_1_fff
sdfsd_tr

ベストアンサー1

探している拡張正規表現:

_[[:digit:]]{4,8}$
_f[fr]$

したがって、grepを使用してください。

grep -Ev -e '_[[:digit:]]{4,8}$' -e '_f[fr]$' test.txt

-iまたは、sedを使用して変更をファイルに直接適用するように追加することもできます。

sed -E -e '/_[[:digit:]]{4,8}$/d' -e '/_f[fr]$/d' test.txt
  • -E拡張正規表現の使用
  • grep は-e与えられたパターンをすべて検索します。
  • sed は-e実行するコマンドにスクリプトを追加します。
  • [:digit:]数字
  • {4,8}4時から8時まで
  • $行末
  • [fr]fどちらにしてもr

正規表現も追加する必要がある場合は、正規表現と-e一緒に追加する必要があります。好きなだけ追加できるので、-e正規表現を複雑にしないでください。したがって、あなたの場合はbr、bd、rtを追加できます。

_br$
_bd$
_rt$

おすすめ記事