<?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>linux sed Archives - CNERIS</title>
	<atom:link href="https://cneris.com/zh/tag/linux-sed/feed/" rel="self" type="application/rss+xml" />
	<link>https://cneris.com/zh/tag/linux-sed/</link>
	<description></description>
	<lastBuildDate>Sun, 18 Aug 2024 10:53:46 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>Linux中的sed命令：如何使用及示例</title>
		<link>https://cneris.com/zh/linux%e4%b8%ad%e7%9a%84sed%e5%91%bd%e4%bb%a4%ef%bc%9a%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e5%8f%8a%e7%a4%ba%e4%be%8b/</link>
					<comments>https://cneris.com/zh/linux%e4%b8%ad%e7%9a%84sed%e5%91%bd%e4%bb%a4%ef%bc%9a%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e5%8f%8a%e7%a4%ba%e4%be%8b/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 18 Aug 2024 10:53:46 +0000</pubDate>
				<category><![CDATA[Centos]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[专用服务器]]></category>
		<category><![CDATA[系统管理]]></category>
		<category><![CDATA[linux sed]]></category>
		<category><![CDATA[Sed 命令]]></category>
		<guid isPermaLink="false">https://cneris.com/?p=1911</guid>

					<description><![CDATA[<p>sed命令，全称为stream editor（流编辑器），是Linux世界中一个强大的工具，允许用户直接从命令行执行高级文本编辑操作。虽然经常被低估，但sed在自动化处理文本流方面非常有用，使其成为脚本和系统管理任务中不可或缺的组成部分。 1. 什么是sed？ sed是一种流编辑器，它从标准输入（如文件或数据流）读取文本，并将编辑命令序列应用于该文本，然后将其输出到标准输出。与vim或nano等交互式文本编辑器不同，sed是非交互式地执行编辑操作，这意味着它可以在脚本中使用，以自动化文本文件的处理。 2. sed的基本语法 sed的基本语法如下： sed [选项] ‘命令’ 文件 选项：配置sed的行为。 命令：指定sed应该执行的操作。 文件：将进行操作的文本文件。 一个简单的例子是使用sed在文本文件中替换一个单词： sed ‘s/旧词/新词/’ 文件.txt 该命令在文件.txt中的每一行中查找“旧词”，并将其替换为“新词”。 3. sed的常见操作 a. 文本替换 使用sed最常见的操作是替换，使用sed的s命令。其一般格式为： sed ‘s/模式/替换/’ 文件.txt 例如，如果你想在文件中将所有“Linux”替换为“GNU/Linux”，可以运行： sed ‘s/Linux/GNU\/Linux/g’ 文件.txt 在这里，g选项确保替换在每一行的所有出现位置进行，而不仅仅是第一次。 b. 删除行 sed还允许你从文本文件中删除行。例如，要删除文件的第三行： sed ‘3d’ 文件.txt 要删除一个范围的行，例如从第2行到第4行： sed ‘2,4d’ 文件.txt c. 插入文本 你可以在特定行之前或之后插入文本。要在第二行之后插入“新文本”： sed ‘2a 新文本’ 文件.txt 要在特定行之前插入，请使用i命令： sed ‘2i 第二行前的文本’ 文件.txt [...]</p>
<p>The post <a href="https://cneris.com/zh/linux%e4%b8%ad%e7%9a%84sed%e5%91%bd%e4%bb%a4%ef%bc%9a%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e5%8f%8a%e7%a4%ba%e4%be%8b/">Linux中的sed命令：如何使用及示例</a> appeared first on <a href="https://cneris.com/zh">CNERIS</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><code>sed</code>命令，全称为<em>stream editor</em>（流编辑器），是Linux世界中一个强大的工具，允许用户直接从命令行执行高级文本编辑操作。虽然经常被低估，但<code>sed</code>在自动化处理文本流方面非常有用，使其成为脚本和系统管理任务中不可或缺的组成部分。<span id="more-1911"></span></p>
<h4>1. <strong>什么是<code>sed</code>？</strong></h4>
<p><code>sed</code>是一种流编辑器，它从标准输入（如文件或数据流）读取文本，并将编辑命令序列应用于该文本，然后将其输出到标准输出。与<code>vim</code>或<code>nano</code>等交互式文本编辑器不同，<code>sed</code>是非交互式地执行编辑操作，这意味着它可以在脚本中使用，以自动化文本文件的处理。</p>
<h4>2. <strong><code>sed</code>的基本语法</strong></h4>
<p><code>sed</code>的基本语法如下：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed [选项] <span class="hljs-string">'命令'</span> 文件<br />
</code></div>
</div>
<ul>
<li><strong>选项</strong>：配置<code>sed</code>的行为。</li>
<li><strong>命令</strong>：指定<code>sed</code>应该执行的操作。</li>
<li><strong>文件</strong>：将进行操作的文本文件。</li>
</ul>
<p>一个简单的例子是使用<code>sed</code>在文本文件中替换一个单词：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'s/旧词/新词/'</span> 文件.txt<br />
</code></div>
</div>
<p>该命令在<code>文件.txt</code>中的每一行中查找“旧词”，并将其替换为“新词”。</p>
<h4>3. <strong><code>sed</code>的常见操作</strong></h4>
<h5>a. <strong>文本替换</strong></h5>
<p>使用<code>sed</code>最常见的操作是替换，使用<code>sed</code>的<code>s</code>命令。其一般格式为：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'s/模式/替换/'</span> 文件.txt<br />
</code></div>
</div>
<p>例如，如果你想在文件中将所有“Linux”替换为“GNU/Linux”，可以运行：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'s/Linux/GNU\/Linux/g'</span> 文件.txt<br />
</code></div>
</div>
<p>在这里，<code>g</code>选项确保替换在每一行的所有出现位置进行，而不仅仅是第一次。</p>
<h5>b. <strong>删除行</strong></h5>
<p><code>sed</code>还允许你从文本文件中删除行。例如，要删除文件的第三行：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'3d'</span> 文件.txt<br />
</code></div>
</div>
<p>要删除一个范围的行，例如从第2行到第4行：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'2,4d'</span> 文件.txt<br />
</code></div>
</div>
<h5>c. <strong>插入文本</strong></h5>
<p>你可以在特定行之前或之后插入文本。要在第二行之后插入“新文本”：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'2a 新文本'</span> 文件.txt<br />
</code></div>
</div>
<p>要在特定行之前插入，请使用<code>i</code>命令：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'2i 第二行前的文本'</span> 文件.txt<br />
</code></div>
</div>
<h5>d. <strong>使用正则表达式替换</strong></h5>
<p><code>sed</code>支持使用正则表达式进行更高级的查找和替换操作。例如，要删除文件中的所有数字：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'s/[0-9]//g'</span> 文件.txt<br />
</code></div>
</div>
<p>这将删除文本中的任何数字。</p>
<h4>4. <strong><code>sed</code>的高级使用</strong></h4>
<h5>a. <strong>就地编辑</strong></h5>
<p>要直接修改文件，而不是仅在标准输出上显示结果，你可以使用<code>-i</code>选项：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed -i <span class="hljs-string">'s/旧词/新词/'</span> 文件.txt<br />
</code></div>
</div>
<h5>b. <strong>组合命令</strong></h5>
<p>你可以在一次<code>sed</code>调用中组合多个命令。例如，要替换文本然后删除一行：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed -e <span class="hljs-string">'s/旧词/新词/'</span> -e <span class="hljs-string">'3d'</span> 文件.txt<br />
</code></div>
</div>
<h5>c. <strong>使用命令文件</strong></h5>
<p>如果你有一系列的<code>sed</code>命令想要应用，可以将它们保存在一个文件中，并一次性执行：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed -f 命令.sed 文件.txt<br />
</code></div>
</div>
<h4>5. <strong>实用示例</strong></h4>
<h5>a. <strong>计算文件中的单词数</strong></h5>
<p>虽然<code>sed</code>不能直接计数单词，但你可以使用它将空格转换为换行符，然后计算行数：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'s/ /\n/g'</span> 文件.txt | <span class="hljs-built_in">wc</span> -l<br />
</code></div>
</div>
<h5>b. <strong>添加行号</strong></h5>
<p>要在文件中添加行号：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed = 文件.txt | sed <span class="hljs-string">'N;s/\n/\t/'</span><br />
</code></div>
</div>
<h5>c. <strong>将大写转换为小写</strong></h5>
<p>你可以使用<code>sed</code>结合<code>tr</code>将文本转换为小写：</p>
<div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium">
<div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"></div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-bash">sed <span class="hljs-string">'s/.*/\L&amp;/'</span> 文件.txt<br />
</code></div>
</div>
<h4>结论</h4>
<p><code>sed</code>命令是Linux中一个多功能且强大的工具，用于自动化文本编辑。从简单的文本替换操作到使用正则表达式进行复杂的操作，<code>sed</code>提供了一系列广泛的功能，使其成为系统管理员、开发人员和任何高级Linux用户不可或缺的工具。学习如何有效地使用<code>sed</code>可以节省时间，并提高管理文件和数据的效率。</p>
<p>The post <a href="https://cneris.com/zh/linux%e4%b8%ad%e7%9a%84sed%e5%91%bd%e4%bb%a4%ef%bc%9a%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e5%8f%8a%e7%a4%ba%e4%be%8b/">Linux中的sed命令：如何使用及示例</a> appeared first on <a href="https://cneris.com/zh">CNERIS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cneris.com/zh/linux%e4%b8%ad%e7%9a%84sed%e5%91%bd%e4%bb%a4%ef%bc%9a%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e5%8f%8a%e7%a4%ba%e4%be%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
