bashの正規表現その2(不完全版)
久しぶりのエントリです。bashスクリプトの正規表現・・・とかいうタイトルで5年前に書いたのですが、これは、bash自身というよりも、exprコマンドで正規表現が扱えますよ・・・という内容でした。まぁそれはそれで良いと思うのですが、実はbash自身に正規表現の機能があるってことを最近知ったので、書いてみます。
お題
データを行毎に記録したテキストファイル(例:data.txt)がある。そのテキストファイルを1行ずつ読み取って、コマンドを実行したい。ただし、#で始まる行や空行は無視したい。
入力
$ cat data.txt
one
#two
thr#ee
four
five
six#
se #ven
nine
ten
$
解答と実行結果
[[ 対象文字列 =~ 正規表現 ]]でマッチ/アンマッチの判定ができる。ポイントは、正規表現をダブルクォートで囲まない事。みたい。
$ cat regexp.sh
#!/bin/sh
TARGET_FILE="data.txt"
while read LINE
do
if [[ $LINE =~ (^#|^ *$) ]]
then
continue
else
echo "$LINE"
fi
done < $TARGET_FILE
$ ./regexp.sh
one
thr#ee
four
five
six#
se #ven
nine
ten
$
後方参照
さらには、括弧でくくった場所を${BASH_REMATCH[x]}で後方参照できる。
${BASH_REMATCH[0]} #-> マッチ全体
${BASH_REMATCH[1]} #-> 1番目の括弧
${BASH_REMATCH[2]} #-> 2番目の括弧
:
お題2
#記号を含む行を出力したい。加えて、該当行のうち#記号から行末までの文字列を抜き出したい。
解答と実行結果
$ cat ./regexp2.sh
#!/bin/bash
TARGET_FILE="data.txt"
while read LINE
do
if [[ $LINE =~ ^[^#]*(#.*)$ ]]
then
echo -n "${BASH_REMATCH[0]},"
echo "${BASH_REMATCH[1]}"
else
:
fi
done < $TARGET_FILE
$ ./regexp2.sh
#two,#two
thr#ee,#ee
six#,#
se #ven,#ven
$
メタキャラクタ
良く分からないのは、このbashの正規表現で使えるメタキャラクタです。数値の意味で\dが使えないのです。(文字'd'にマッチしちゃうみたい)どこかにbashで使える正規表現のメタキャラクタの一覧がないかなぁ。
| 固定リンク
この記事へのコメントは終了しました。


コメント
Hello. And Bye.
投稿: WillieBoola | 2020年6月12日 (金) 07時16分
ハロー、デザインや選択に興味のある人のために
建設のためのプロジェクトは、良い<a href=https://stroisip.ru> カタログ
美しいプロジェク</a>別の設計の多くのプロジェクト。
<a href=https://photographybytanya.com/blog/?page_id=95#comment-10486>That's interesting by the way</a> cb67_c1
投稿: JohnnieSeilk | 2020年9月 3日 (木) 13時03分
Hiya!
Несколько десятилетий назад безалкогольное пиво создавалось путем вываривания этанола. К сожалению, это имело тенденцию разрушать вкусовые качества и аромат пива. Солодовые вкусы и хмелевая горечь, как правило, оставались, но в процессе термической обработки в напитке могли появляться новые соединения, влияние на вкус которых предугадать было сложно. Более современные способы деалкоголизации это остановка ферментации и вакуумная перегонка. Пивовары добиваются нужного эффекта, используя меньше зерна, чем обычно, или изготавливая пиво при более низкой температуре. Способ вакуумной перегонки используется некоторыми пивоварами, чтобы предотвратить изменение вкуса при подогреве пива. Этот процесс использует вакуум, чтобы максимально снизить температуру кипения спирта. Вместо того, чтобы нагревать пиво до высокой температуры, пиво достигает только теплой температуры. Эта техника помогает сохранить вкусовые качества без ущерба для содержания алкоголя.
https://forum.rioforense.com.br/member.php?action=profile&uid=590
http://dating.pokrov.com/forum/viewtopic.php?p=17480&sid=15858c1f12f1fa05e40f0a83fb7f1d82#17480
http://www.travianv.com/index.php?threads/%E4%BD%BF%E7%94%A8%E6%89%8B%E6%9C%BA%E5%8F%B7%E7%A0%81%E5%88%97%E8%A1%A8%E6%9C%8D%E5%8A%A1%E5%B9%B6%E5%8F%91%E7%8E%B0%E6%82%A8%E7%9A%84%E9%85%8D%E5%81%B6%E6%9B%BE%E4%B8%8E%E8%B0%81%E9%80%9A%E8%AF%9D.39723/#post-486931
Хештеги темы: круглосуточная доставка водки, коньяк доставка на дом 24 часа, ликер доставка Санкт-Петербург, order alcohol with delivery St. Petersburg 24 hours, круглосуточная доставка джина Спб, доставка джина, заказать игристое вино с доставкой на дом, кальянный табак круглосуточная доставка СПб, store to order alcohol delivery to home in SPb, заказать виски с доставкой на дом Спб
http://colkmaar.cyou/showthread.php?tid=51941&pid=81267#pid81267
http://forum.grafikerleriz.gen.tr/viewtopic.php?f=4&t=58317
http://koronawirus-forum.pl/viewtopic.php?f=27&t=86877
https://www.kingone55.com/space-uid-772622.html
http://www.civfanatics.ru/members/187909-NancyRug
http://leyi.la/thread-194641-1-1.html
Другие запросы: Оладушки из лобстера – что приготовить для закуски под пиво, пиво на дом с доставкой круглосуточно заказать, Как сделать вкусную закуску к пиву дома?, круглосуточная доставка бренди на дом, доставка мартини ночью, круглосуточная доставка вина в Спб, доставка джина 24 часа, купить водку, заказать водку с доставкой круглосуточно, delivery alcohol to home
<a href="https://nvexotics.com/member.php?action=profile&uid=579">delivery of alcohol to home 24 hours</a>
<a href="https://bulksmsoperators.com/member.php?action=profile&uid=2943">Коктейль «Кровавая Мэри» рецепт с фото</a>
<a href="https://www.stocksmessageboards.com/showthread.php?tid=18788&pid=255532#pid255532">кальянный табак купить Санкт-Петербург</a>
Теги по теме: виски доставка, мартини круглосуточная доставка на дом, круглосуточная доставка виски в Спб, доставка вермута Санкт-Петербург, пиво доставка СПб 24, Лангуст или мангуст – готовим закуску к пиву, alcohol round-the-clock delivery Saint Petersburg, как заказать пиво на дом ночью, заказать текилу с доставкой ночью, alcohol to order delivery now Saint Petersburg alcohol
<a href="http://mebforum.ru/user/62166-nikkisnuri/">Кровавая Мэри: состав коктейля, рецепт приготовления</a>
<a href="http://pogaduchyweselne.pl/temat-IMPORTANT-NEW-2020-Watch-this-post-please?pid=1248018#pid1248018">доставка спиртного Санкт-Петербург</a>
<a href="http://obt-salaya.go.th/webboard/index.php?action=profile;u=60698">доставка сигарет круглосуточно</a>
Хештеги: вино доставка на дом, Коктейль Кровавая Мэри в домашних условиях, free delivery of alcohol in the house SPb clock, order of alcohol to home St. Petersburg, доставка вина ночью, водка доставка круглосуточно, Лучшие закуски с пивом, доставка алкоголя круглосуточно СПб ночью, доставка водки круглосуточно, К какому пиву какая закуска: обзор готовых и рецепты
投稿: JamesMek | 2021年10月30日 (土) 17時13分
Hi there to all, how is the whole thing, I think every one is getting more
from this site, and your views are pleasant in favor of new people.
投稿: focus group paid london | 2022年4月 5日 (火) 18時01分
Hello, constantly i used to check blog posts here in the early
hours in the dawn, because i enjoy to gain knowledge of more
and more.
投稿: I Can't Date Jesus Audiobook Video? | 2022年4月10日 (日) 07時25分
Hello There. I found your blog using msn. This is an extremely well written article.
I will make sure to bookmark it and come back to read more of your useful information. Thanks for the post.
I will certainly return.
投稿: bethanyreinvestments.com | 2022年4月12日 (火) 18時49分
Good day I am so grateful I found your blog, I really found you by accident, while I was
researching on Google for something else, Regardless I am here now and would just like to say thanks a lot for a remarkable post and a all round enjoyable blog (I
also love the theme/design), I don't have time to read it all at the minute but I have bookmarked it and also added your RSS feeds, so when I have time I will be back
to read a lot more, Please do keep up the fantastic job.
投稿: site | 2022年4月12日 (火) 18時49分
Great article. I am facing many of these issues as well..
投稿: quintessence.co.za | 2022年4月13日 (水) 01時02分