<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>正規表現 &#8211; スグブログ</title>
	<atom:link href="https://sugublog.org/tag/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE/feed/" rel="self" type="application/rss+xml" />
	<link>https://sugublog.org</link>
	<description>ブログ運営について発信中</description>
	<lastBuildDate>Tue, 12 Mar 2024 02:01:17 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://sugublog.org/wp-content/uploads/2021/07/icon_20210703-min-150x150.png</url>
	<title>正規表現 &#8211; スグブログ</title>
	<link>https://sugublog.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【シェルスクリプト】正規表現を使う方法と詳細解説</title>
		<link>https://sugublog.org/shellscript-regular-expression/</link>
					<comments>https://sugublog.org/shellscript-regular-expression/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Tue, 12 Mar 2024 02:01:16 +0000</pubDate>
				<category><![CDATA[シェルスクリプト]]></category>
		<category><![CDATA[正規表現]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=6520</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/freelance-1024x542.jpg" class="webfeedsFeaturedVisual" /></p>シェルスクリプトでの正規表現は難しくて、疎かになっていないでしょうか？ 便利そうだけど理解が出来ずに、手を付けずにここまで来たあなたの為に、今回シェルスクリプトでの正規表現についてまとめます。 正規表現を極めることでシェ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/07/freelance-1024x542.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong><span class="swl-inline-color has-swl-deep-01-color">シェルスクリプトでの正規表現</span></strong>は難しくて、疎かになっていないでしょうか？</p>



<p>便利そうだけど理解が出来ずに、手を付けずにここまで来たあなたの為に、今回シェルスクリプトでの正規表現についてまとめます。</p>



<p><span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">正規表現</span></strong>を極めることで<strong><span class="swl-inline-color has-swl-deep-01-color">シェルスクリプトの質</span></strong>が上がる事は間違いありません。</span></p>



<p>理解しやすいように表にしてまとめたり、シェルスクリプトの例文を使用して現役エンジニアの筆者が教えます。</p>


<div class="p-blogParts post_content" data-partsID="5030">
<p>windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。</p>
</div>


<p>今まで避けてきた<strong><span class="swl-inline-color has-swl-deep-01-color">正規表現</span></strong>を極めて、<strong><span class="swl-inline-color has-swl-deep-01-color">効率よいシェルスクリプト</span></strong>を作成できるようになりましょう！</p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">シェルスクリプトで正規表現についての詳細解説</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="666" src="https://sugublog.org/wp-content/uploads/2021/09/code_0923-1-1-1024x666.jpg" alt="code" class="wp-image-4186" srcset="https://sugublog.org/wp-content/uploads/2021/09/code_0923-1-1-1024x666.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/09/code_0923-1-1-300x195.jpg 300w, https://sugublog.org/wp-content/uploads/2021/09/code_0923-1-1-768x499.jpg 768w, https://sugublog.org/wp-content/uploads/2021/09/code_0923-1-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">シェルスクリプトの正規表現の種類について</h3>



<p><strong><span class="swl-inline-color has-swl-deep-01-color">シェルスクリプトの正規表現</span></strong>について2種類あります。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>シェルスクリプトでの2種類の正規表現</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>基本正規表現</li>



<li>拡張正規表現</li>
</ul>
</div></div>



<p>基本正規表現と拡張正規表現とどちらを学べば良いでしょうか？</p>



<p>結論は<span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">拡張正規表現</span></strong>を学べば良い</span>です。少し違いがあるだけで基本はコマンドにオプションをつけるだけで拡張正規表現になるので楽です。</p>



<p class="is-style-big_icon_point">基本の方を学びたくなる気持ちもわかりますが、対応していない文字などもあるので拡張正規表現だけでも問題ありません。</p>



<h3 class="wp-block-heading">正規表現で重要になってくるメタ文字とは</h3>



<p>また<span class="swl-marker mark_orange"><strong><span class="swl-inline-color has-swl-deep-01-color">正規表現</span></strong>を使用するにあたり重要になってくるのが、<strong><span class="swl-inline-color has-swl-deep-01-color">メタ文字</span></strong>です。</span></p>



<p class="is-style-icon_announce">メタ文字とは正規表現を使用する上で、普通の文字列ではないある効果を持っている文字です。</p>



<p>このメタ文字がややこしいので、表でわかりやすいようにまとめます。</p>



<h3 class="wp-block-heading">正規表現はシェルスクリプトのどのような所で使用されるのか</h3>



<p><span class="swl-marker mark_orange">シェルスクリプトでよく<strong><span class="swl-inline-color has-swl-deep-01-color">正規表現</span></strong>が使用されるのは主に<strong>「文字検索」</strong>と<strong>「置換」</strong>です。</span>あとは条件分岐のifでたまに正規表現が出てくるくらいです。</p>



<p><span class="swl-bg-color has-swl-deep-01-background-color">シェルスクリプトの「文字検索」</span>で使用されるコマンドは主に<strong><span class="swl-inline-color has-swl-deep-01-color">「grep」</span></strong>コマンドです。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-6-300x250.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/shellscript-grep/">【シェルスクリプト】grepで文字列を抽出する方法！正規表現も使用します</a>
						<span class="p-blogCard__excerpt">Linuxでシェルスクリプトのgrepのやり方がよくわかりません。オプションや正規表現を使用した文字列抽出を行いたいです。 そういった声が多いので今回はシェルスクリプ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p><span class="swl-bg-color has-swl-deep-02-background-color">シェルスクリプトの「置換」</span>で使用されるコマンドは主に<strong><span class="swl-inline-color has-swl-deep-02-color">「sed」</span></strong>コマンドです。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-300x164.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/shellscript-sed/">【シェルスクリプト】sedで置換する方法！変数や正規表現も使用する</a>
						<span class="p-blogCard__excerpt">シェルスクリプトでよく使うものに置換があります。「sed s」コマンドを使用しますが、書き方など難しいと思った事はないでしょうか？ 記述の仕方が難しいのでとっつき&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">シェルスクリプトで正規表現を使う方法</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="782" src="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-8-1024x782.jpg" alt="シェルスクリプト記述" class="wp-image-4802" srcset="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-8-1024x782.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-8-300x229.jpg 300w, https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-8-768x586.jpg 768w, https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-8.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>では<strong><span class="swl-inline-color has-swl-deep-01-color">シェルスクリプトの正規表現</span></strong>を実際に見ていきます。</p>



<p>一気に見るとややこしいので、正規表現に使用するメタ文字を用途に分けてまとめます。</p>



<h2 class="wp-block-heading">正規表現の文字や文字の位置を示すメタ文字</h2>



<h3 class="wp-block-heading">正規表現の文字や文字の位置を示すメタ文字</h3>



<figure class="wp-block-table"><table><thead><tr><th>基本正規表現メタ文字</th><th>拡張正規表現メタ文字</th><th>効果</th></tr></thead><tbody><tr><td>.</td><td>.</td><td>何かしらの1文字</td></tr><tr><td>^</td><td>^</td><td>最初の文字</td></tr><tr><td>$</td><td>$</td><td>最後の文字</td></tr><tr><td>[]</td><td>[]</td><td>限定文字指定</td></tr><tr><td>[^]</td><td>[^]</td><td>限定文字以外</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトで使用できる正規表現一覧</figcaption></figure>



<h3 class="wp-block-heading">実際のメタ文字を使用した正規表現例</h3>



<figure class="wp-block-table"><table><thead><tr><th>基本正規表現</th><th>拡張正規表現メタ文字</th><th>抽出例</th></tr></thead><tbody><tr><td>&#8216;roo.&#8217;</td><td>&#8216;roo.&#8217;</td><td>root,rooa,roob</td></tr><tr><td>&#8216;^root&#8217;</td><td>&#8216;^root&#8217;</td><td>root,roota,rootab</td></tr><tr><td>&#8216;nologin$&#8217;</td><td>&#8216;nologin$&#8217;</td><td>aaaanologin,bbbnologin</td></tr><tr><td>&#8216;roo[stu]&#8217;<br>&#8216;roo[s-u]&#8217;<br>&#8216;roo[1-3]&#8217;</td><td>&#8216;roo[stu]&#8217;<br>&#8216;roo[s-u]&#8217;<br>&#8216;roo[1-3]&#8217;</td><td>root,roos,roou<br>root,roos,roou<br>roo1,roo2,roo3</td></tr><tr><td>&#8216;roo[^abc]&#8217;</td><td>&#8216;roo[^abc]&#8217;</td><td>root,rood,rooe,roof</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトで使用できる正規表現一覧</figcaption></figure>



<h2 class="wp-block-heading">正規表現の文字の繰り返しを示すメタ文字</h2>



<h3 class="wp-block-heading">正規表現の文字の繰り返しを示すメタ文字</h3>



<figure class="wp-block-table"><table><thead><tr><th>基本正規表現メタ文字</th><th>拡張正規表現メタ文字</th><th>効果</th></tr></thead><tbody><tr><td>*</td><td>*</td><td>直前の文字の0回以上の繰り返し</td></tr><tr><td>無し</td><td>+</td><td>直前の文字の1回以上の繰り返し</td></tr><tr><td>無し</td><td>?</td><td>直前の文字の0回もしくは1回の繰り返し</td></tr><tr><td>\{m\}</td><td>{m}</td><td>直前の文字のm回の繰り返し</td></tr><tr><td>\{m,\}</td><td>{m,}</td><td>直前の文字のm回以上の繰り返し</td></tr><tr><td>\{m,n\}</td><td>{m,n}</td><td>直前の文字のm回以上n回以下の繰り返し</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトで使用できる繰り返しの正規表現一覧</figcaption></figure>



<h3 class="wp-block-heading">実際に繰り返しのメタ文字使用例</h3>



<figure class="wp-block-table"><table><thead><tr><th>基本正規表現メタ文字</th><th>拡張正規表現メタ文字</th><th>効果</th></tr></thead><tbody><tr><td>&#8216;roo*t&#8217;</td><td>&#8216;roo*t&#8217;</td><td>rot,root,rooot,rooota,roootab</td></tr><tr><td>無し</td><td>&#8216;roo+t&#8217;</td><td>root,rooot,rooota,roootab</td></tr><tr><td>無し</td><td>&#8216;roo?t&#8217;</td><td>rot,root,roota,rootab</td></tr><tr><td>&#8216;ro\{2\}t&#8217;</td><td>&#8216;ro{2}t&#8217;</td><td>root,roota,rootab</td></tr><tr><td>&#8216;ro\{1,\}t&#8217;</td><td>&#8216;ro{1,}t&#8217;</td><td>rot,root,rooot,rooota,roootab</td></tr><tr><td>&#8216;ro\{1,2\}t&#8217;</td><td>&#8216;ro{1,2}t&#8217;</td><td>rot,root,roota,rootab</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトで使用できる繰り返しの正規表現一覧</figcaption></figure>



<h2 class="wp-block-heading">正規表現の補助的なメタ文字</h2>



<h3 class="wp-block-heading">正規表現の補助的なメタ文字</h3>



<figure class="wp-block-table"><table><thead><tr><th>基本正規表現メタ文字</th><th>拡張正規表現メタ文字</th><th>効果</th></tr></thead><tbody><tr><td>\</td><td>\</td><td>直後のメタ文字を普通の文字として扱う</td></tr><tr><td>\(\)</td><td>()</td><td>指定する文字列をクループ化する</td></tr><tr><td>無し</td><td>|</td><td>複数の正規表現をORで繋げる</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトで使用できる補助的正規表現一覧</figcaption></figure>



<h3 class="wp-block-heading">実際の補助的メタ文字の使用例</h3>



<figure class="wp-block-table"><table><thead><tr><th>基本正規表現メタ文字</th><th>拡張正規表現メタ文字</th><th>効果</th></tr></thead><tbody><tr><td>&#8216;ro\\{2\\}t&#8217;</td><td>&#8216;ro\\{2\\}t&#8217;</td><td>ro\{2\}t,ro\{2\}ta,ro\{2\}tab,</td></tr><tr><td>&#8216;a\(bc\){2}&#8217;</td><td>&#8216;a(bc){2}&#8217;</td><td>abcbc,abcbca,abcbcac</td></tr><tr><td>無し</td><td>&#8216;abc|123&#8217;</td><td>123,abc,123a,abc1</td></tr></tbody></table><figcaption class="wp-element-caption">シェルスクリプトで使用できる補助的正規表現一覧</figcaption></figure>



<h2 class="wp-block-heading">正規表現をシェルスクリプトで使用した詳細結果</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="632" src="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3-1024x632.jpg" alt="コード" class="wp-image-4560" srcset="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3-1024x632.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3-300x185.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3-768x474.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/programing_1122-3.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>それぞれ実際にシェルスクリプトで実行した結果については以下の記事で詳細にまとめております。</p>



<p><span class="swl-bg-color has-swl-deep-01-background-color">シェルスクリプトの「文字検索」</span>で使用される<strong><span class="swl-inline-color has-swl-deep-01-color">「grep」</span></strong>コマンド結果</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/12/PC教室20211216-6-300x250.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/shellscript-grep/">【シェルスクリプト】grepで文字列を抽出する方法！正規表現も使用します</a>
						<span class="p-blogCard__excerpt">Linuxでシェルスクリプトのgrepのやり方がよくわかりません。オプションや正規表現を使用した文字列抽出を行いたいです。 そういった声が多いので今回はシェルスクリプ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p><span class="swl-bg-color has-swl-deep-02-background-color">シェルスクリプトの「置換」</span>で使用される<strong><span class="swl-inline-color has-swl-deep-02-color">「sed」</span></strong>コマンド実行結果</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://sugublog.org/wp-content/uploads/2021/11/programing_1122-4-300x164.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://sugublog.org/shellscript-sed/">【シェルスクリプト】sedで置換する方法！変数や正規表現も使用する</a>
						<span class="p-blogCard__excerpt">シェルスクリプトでよく使うものに置換があります。「sed s」コマンドを使用しますが、書き方など難しいと思った事はないでしょうか？ 記述の仕方が難しいのでとっつき&#8230;</span>					</div>
				</div>
			</div>
		</div>]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/shellscript-regular-expression/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
