<?xml version="1.0" encoding="gbk"?>
<rss version="2.0">
  <channel>
    <title>曲径通幽论坛 - sed</title>
    <link>http://www.groad.net/bbs/forum.php?mod=forumdisplay&amp;fid=116</link>
    <description>Latest 20 threads of sed</description>
    <copyright>Copyright(C) 曲径通幽论坛</copyright>
    <generator>Discuz! Board by Comsenz Inc.</generator>
    <lastBuildDate>Sun, 12 Jul 2026 10:48:31 +0000</lastBuildDate>
    <ttl>60</ttl>
    <image>
      <url>http://www.groad.net/bbs/static/image/common/logo_88_31.gif</url>
      <title>曲径通幽论坛</title>
      <link>http://www.groad.net/bbs/</link>
    </image>
    <item>
      <title>替换反斜杠</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8154</link>
      <description><![CDATA[有如下文本：


在命令行中直接去掉开头处的反斜杠：

去掉是成功的。如果将同样的语句放在脚本中呢？



运行输出：


错误！

解决方法有几种：
 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Wed, 20 Nov 2013 15:07:41 +0000</pubDate>
    </item>
    <item>
      <title>在 sed 中匹配换行小结</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=7657</link>
      <description><![CDATA[在《G 与 h 命令》 中已经举出了相关的例子，在这里再进行一个小结。
 
像如下的这种形式，不会匹配到换行符(\\n) ：

 
为什么上述语句达不到处理换行的目的？这得看 sed 是如何读入输入内容的。
 
sed  是个基于行处理的工具，它每次仅读入一行，除非你对它另有安排。 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sat, 16 Mar 2013 10:28:40 +0000</pubDate>
    </item>
    <item>
      <title>冒号标签, b 与 t 命令做跳转</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6845</link>
      <description><![CDATA[实际上，在 sed 里也是可以实现循环跳转等功能的，这里会涉及到 3 个符号：冒号(:)，b 命令，t 命令。

其中，冒号后面紧接着一个标签；b 命令表示无条件跳转(到标签处)；t 命令表示有条件跳转(到标签处)，该条件是当 s/// 这样的替换成功时。

下面用一个回文单词来说 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sat, 07 Apr 2012 17:25:46 +0000</pubDate>
    </item>
    <item>
      <title>&amp; -- 对应于被匹配的字串</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6826</link>
      <description><![CDATA[&amp; 可以对应于被匹配的字串，举例如下：

上面 \\w 表示匹配的是单个字符，其相当于：

其中 \\b 表示匹配单词边界。]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Wed, 04 Apr 2012 12:41:20 +0000</pubDate>
    </item>
    <item>
      <title>使用 Ng 非完全替换</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6824</link>
      <description><![CDATA[我们经常会用 g 选项进行全局替换，如：


但是在某些情况下，我们可能不需要进行全局替换，而是想替换掉从某处起后面的所有项，那么此时可用 Ng ，其中 N 是正整数，如：]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Wed, 04 Apr 2012 03:55:53 +0000</pubDate>
    </item>
    <item>
      <title>sed 正则里 &amp; 符号的含义</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6709</link>
      <description><![CDATA[在 sed 的正则里，&amp; 表示匹配的部分，比如：

上面的 sed 里，当找到非 \'\\n 字符时，就用 &amp;\\n 来替换，&amp; 表示匹配部分，这里即非 \'\\n\' 字符，整个 &amp;\\n 表示保留所找到的字符并在其后添加一个换行。]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sat, 24 Mar 2012 07:02:35 +0000</pubDate>
    </item>
    <item>
      <title>将段标签添加到该段中的每行前面</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6062</link>
      <description><![CDATA[下面例子演示了将一个段的段标签添加到该段中的每一行之前。测试文本如下：

该文本中，#website ，#system 以及 #Windows 都是段标签。下面将这些标签添加到各自段落中的每一行之前，运行命令如下：

说明：
如果匹配段标签，那么就将该标签从 pattern space 复制到 ho ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sat, 04 Feb 2012 05:14:10 +0000</pubDate>
    </item>
    <item>
      <title>将前一行内容添加到下一行内容的后边</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6061</link>
      <description><![CDATA[下面例子演示了将前一行添加到下一行的后边。测试文本如下：

运行输出：

说明：
首先第 1 行内容会被读到 pattern space 中，然后用 H 命令将该行内容追加到 hold space 中，此时 hold space 中的内容为：\&quot;(空行)\\n#website\&quot; ，注意 pattern space 中内容不会被移除！ ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sat, 04 Feb 2012 02:25:38 +0000</pubDate>
    </item>
    <item>
      <title>删除掉一个段落中的最后一行</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6052</link>
      <description><![CDATA[测试文本内容为：

注意，上面的文本中，每个段落都由一个空行隔开。

下面命令将删除掉每个段落中的最后一行，比如会分别删除掉 sina.com ，jiangsu，windows 这 3 行，命令运行如下：

如果不是空行，那么就交换 pattern space 和 holdspace，然后打印出 pattern spac ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Fri, 03 Feb 2012 04:58:22 +0000</pubDate>
    </item>
    <item>
      <title>使用 g 命令将 hold space 中内容复制到 pattern space</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6051</link>
      <description><![CDATA[g 命令可以将 hold space 中内容复制到 pattern space。

供测试用的文本内容：

下面的例子将演示如果发现某匹配行就打印出其前一行，命令组中使用到了 g 命令，如下所示：

在上面的命令中，会一直试图寻找 unix 这个匹配，若是没有发生匹配，那么将执行 h 命令 ，将 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Fri, 03 Feb 2012 03:29:37 +0000</pubDate>
    </item>
    <item>
      <title>H 与 x 命令</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6050</link>
      <description><![CDATA[H 命令将 pattern space 的内容追加到 hold space ，它们由换行符(\\n)隔开。

x 命令将 hold space 的内容和 pattern space 的内容互换。

下面的例子使用 H 命令和 x 命令打印一个含有某匹配的段落。供测试用文本内容如下：

下面，我们将打印出含有 groad 的段，运行 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Fri, 03 Feb 2012 02:40:42 +0000</pubDate>
    </item>
    <item>
      <title>G 与 h 命令</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6046</link>
      <description><![CDATA[G 命令将 hold space 里的内容追加到 pattern space 中。前后的内容由换行符(\\n)隔开。

测试文本：


下面将仅用 G 命令来操作该文本，看下会发生情况：

由输出可见，每行被一个空行隔开了。命令的处理流程是：sed 先读入第一行内容到 pattern space ，然后将 hold sp ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Thu, 02 Feb 2012 17:45:52 +0000</pubDate>
    </item>
    <item>
      <title>P 和 D 命令</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6033</link>
      <description><![CDATA[P&#160;&#160;命令用来打印 pattern space 里的第一行(直到换行符 \\n)
D 命令删除掉 pattern space 里的第一行，然后重新下一个处理循环，如果此时 pattern space 里仍有数据，那么 sed 不会从输入中读入数据。


测试文本内容如下：

上面文本内容中包含了 2 个空白行 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Tue, 31 Jan 2012 16:43:10 +0000</pubDate>
    </item>
    <item>
      <title>使用 N 命令读取下一行到 pattern space</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6028</link>
      <description><![CDATA[一般情况下，sed 是“行”的流编辑器，有些时候，也有多行操作的需要。比如，可能希望将一个文本中的所有换行符去掉，你可能会想到使用下面的语句：

但这么做的结果并不像想象那样，看起来似乎并不凑效。这是因为，当 sed 在处理每一行时，会将该行读入到 pattern spac ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Mon, 30 Jan 2012 18:17:54 +0000</pubDate>
    </item>
    <item>
      <title>pattern space 和 hold space 的概念</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6021</link>
      <description><![CDATA[sed 是个流编辑器，它每次从文件(或 输入)中读入一行，然后对改行进行指定处理，并将结果输出，然后继续读入下一行，处理，输出，如此反复，直到没有再需要处理的内容。
 
下图是一个工作原理说明图：

 
图中有两个关于“空间“的概念：pattern space 和 hold space 。 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sun, 29 Jan 2012 17:04:44 +0000</pubDate>
    </item>
    <item>
      <title>使用 = 命令打印行号</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6020</link>
      <description><![CDATA[测试文本内容：


= 命令可以将当前行的行号打印到标准输出，基本语法如下：

如果直接运行上面形式命令，那么将打印出所有行的行号：


如果希望打印包含 Database 的行的行号，那么可以：


如果要打印匹配一个范围内的行的行号，那么可以：

= 命令只接受一个地址的 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sun, 29 Jan 2012 14:04:01 +0000</pubDate>
    </item>
    <item>
      <title>使用 c 命令进行行替换</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6019</link>
      <description><![CDATA[使用 c 命令用来对匹配行替换，语法为：


例一：替换第一行


例二：替换所有的匹配行


例三：替换掉最后一行]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sun, 29 Jan 2012 12:38:21 +0000</pubDate>
    </item>
    <item>
      <title>使用 i 命令来插入行</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6018</link>
      <description><![CDATA[i 命令用来将一行内容插入到每一匹配行的前面。语法如下：


测试文本内容：



例一：在第四行前插入一行

这样的插入结果是新插入行变为第四行。

例二：在每一匹配行前插入一行

上面将 www.groad.net 插入到所有匹配 Sysadmin 的行前。

例三：在最后一行前插入一行 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sun, 29 Jan 2012 12:09:56 +0000</pubDate>
    </item>
    <item>
      <title>使用 a 命令进行追加</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6017</link>
      <description><![CDATA[追加内容到文本中使用 a 命令，语法如下：


供测试用文件内容如下：


例一：将内容追加到第三行后


例二：将内容追加到每一匹配行之后

上面，追加 www.groad.net 到每一含有 Sysadmin 的行后。

例三：将内容追加到末行]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sun, 29 Jan 2012 10:32:52 +0000</pubDate>
    </item>
    <item>
      <title>使用 w 命令提取文件内容并写到指定文件中</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6016</link>
      <description><![CDATA[sed 提供了 \'w\' 命令，利用它可以将匹配内容写到一个新文件中。

测试文本内容如下：


1. 将第一行内容写到一个新文件中：


2. 将第一行和最后一行内容写到文件中：



3. 将具有匹配 Sysadmin 和 Storage 的行写到文件中：


4. 将匹配行开始直到最后一行写到文件中 ...]]></description>
      <category>sed</category>
      <author>beyes</author>
      <pubDate>Sun, 29 Jan 2012 09:29:33 +0000</pubDate>
    </item>
  </channel>
</rss>