sed指令工具使用方法
使用sed可以实现grep的大部分功能,而且还可以查找替换。
sed [options] 'command' filename
sed [options] -f scriptfile filename
-n:-n选项和p命令一起使用表示打印
-e:等价于--expression,多点编辑,在一行执行多条命令
用sed实现匹配(grep)功能=打印有root字符串的行
[root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -n '/root/'p test.txt </span> <span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">operator:</span><span class="hljs-symbol">x:</span><span class="hljs-number">11</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:operator</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/sbin/nologin</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -nr '/r+o/'p test.txt </span> <span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">operator:</span><span class="hljs-symbol">x:</span><span class="hljs-number">11</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:operator</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/sbin/nologin</span> systemd-bus-<span class="hljs-symbol">proxy:</span><span class="hljs-symbol">x:</span><span class="hljs-number">999</span><span class="hljs-symbol">:</span><span class="hljs-number">997</span><span class="hljs-symbol">:systemd</span> Bus <span class="hljs-symbol">Proxy:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">tss:</span><span class="hljs-symbol">x:</span><span class="hljs-number">59</span><span class="hljs-symbol">:</span><span class="hljs-number">59</span><span class="hljs-symbol">:Account</span> used by the trousers package to sandbox the tcsd <span class="hljs-symbol">daemon:</span>/dev/<span class="hljs-symbol">null:</span>/sbin/nologin <span class="hljs-symbol">chrony:</span><span class="hljs-symbol">x:</span><span class="hljs-number">997</span><span class="hljs-symbol">:</span><span class="hljs-number">995</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/lib/chrony</span><span class="hljs-symbol">:/sbin/nologin</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -nr '/o*t/'p test.txt </span> <span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">shutdown:</span><span class="hljs-symbol">x:</span><span class="hljs-number">6</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:shutdown</span><span class="hljs-symbol">:/sbin</span><span class="hljs-symbol">:/sbin/shutdown</span> <span class="hljs-symbol">halt:</span><span class="hljs-symbol">x:</span><span class="hljs-number">7</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:halo1t</span><span class="hljs-symbol">:/sbin</span><span class="hljs-symbol">:/sbin/halt</span> <span class="hljs-symbol">operator:</span><span class="hljs-symbol">x:</span><span class="hljs-number">11</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:operator</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">ftp:</span><span class="hljs-symbol">x:</span><span class="hljs-number">14</span><span class="hljs-symbol">:</span><span class="hljs-number">50</span><span class="hljs-symbol">:FTP</span> <span class="hljs-symbol">User:</span>/var/<span class="hljs-symbol">ftp:</span>/sbin/nologin systemd-bus-<span class="hljs-symbol">proxy:</span><span class="hljs-symbol">x:</span><span class="hljs-number">999</span><span class="hljs-symbol">:</span><span class="hljs-number">997</span><span class="hljs-symbol">:systemd</span> Bus <span class="hljs-symbol">Proxy:</span>/<span class="hljs-symbol">:/sbin/nologin</span> systemd-<span class="hljs-symbol">network:</span><span class="hljs-symbol">x:</span><span class="hljs-number">192</span><span class="hljs-symbol">:</span><span class="hljs-number">192</span><span class="hljs-symbol">:systemd</span> Network <span class="hljs-symbol">Management:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">dbus:</span><span class="hljs-symbol">x:</span><span class="hljs-number">81</span><span class="hljs-symbol">:</span><span class="hljs-number">81</span><span class="hljs-symbol">:System</span> message <span class="hljs-symbol">bus:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">polkitd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">998</span><span class="hljs-symbol">:</span><span class="hljs-number">996</span><span class="hljs-symbol">:User</span> <span class="hljs-keyword">for</span> <span class="hljs-symbol">polkitd:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">tss:</span><span class="hljs-symbol">x:</span><span class="hljs-number">59</span><span class="hljs-symbol">:</span><span class="hljs-number">59</span><span class="hljs-symbol">:Account</span> used by the trousers package to sandbox the tcsd <span class="hljs-symbol">daemon:</span>/dev/<span class="hljs-symbol">null:</span>/sbin/nologin <span class="hljs-symbol">postfix:</span><span class="hljs-symbol">x:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/spool/postfix</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">sshd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">74</span><span class="hljs-symbol">:</span><span class="hljs-number">74</span><span class="hljs-symbol">:Privilege-separated</span> <span class="hljs-symbol">SSH:</span>/var/empty/<span class="hljs-symbol">sshd:</span>/sbin/nologin
忽略大小写(I)
[root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -n '/nologin/'Ip test.txt </span> <span class="hljs-symbol">bin:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:/sbin/NOLOGIN</span> <span class="hljs-symbol">daemon:</span><span class="hljs-symbol">x:</span><span class="hljs-number">2</span><span class="hljs-symbol">:</span><span class="hljs-number">2</span><span class="hljs-symbol">:daemon</span><span class="hljs-symbol">:/sbin</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">ad11om:</span><span class="hljs-symbol">x:</span><span class="hljs-number">3</span><span class="hljs-symbol">:</span><span class="hljs-number">4</span><span class="hljs-symbol">:ad1om</span><span class="hljs-symbol">:/var/adm</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">lp:</span><span class="hljs-symbol">x:</span><span class="hljs-number">4</span><span class="hljs-symbol">:</span><span class="hljs-number">7</span><span class="hljs-symbol">:lp</span><span class="hljs-symbol">:/var/spoool/lpd</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">mail:</span><span class="hljs-symbol">x:</span><span class="hljs-number">8</span><span class="hljs-symbol">:</span><span class="hljs-number">12</span><span class="hljs-symbol">:mail</span><span class="hljs-symbol">:/var/spoooooool/mail</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">operator:</span><span class="hljs-symbol">x:</span><span class="hljs-number">11</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:operator</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">games:</span><span class="hljs-symbol">x:</span><span class="hljs-number">12</span><span class="hljs-symbol">:</span><span class="hljs-number">100</span><span class="hljs-symbol">:games</span><span class="hljs-symbol">:/usr/games</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">ftp:</span><span class="hljs-symbol">x:</span><span class="hljs-number">14</span><span class="hljs-symbol">:</span><span class="hljs-number">50</span><span class="hljs-symbol">:FTP</span> <span class="hljs-symbol">User:</span>/var/<span class="hljs-symbol">ftp:</span>/sbin/nologin <span class="hljs-symbol">nobody:</span><span class="hljs-symbol">x:</span><span class="hljs-number">99</span><span class="hljs-symbol">:</span><span class="hljs-number">99</span><span class="hljs-symbol">:Nobody</span><span class="hljs-symbol">:/</span><span class="hljs-symbol">:/sbin/nologin</span> systemd-bus-<span class="hljs-symbol">proxy:</span><span class="hljs-symbol">x:</span><span class="hljs-number">999</span><span class="hljs-symbol">:</span><span class="hljs-number">997</span><span class="hljs-symbol">:systemd</span> Bus <span class="hljs-symbol">Proxy:</span>/<span class="hljs-symbol">:/sbin/nologin</span> systemd-<span class="hljs-symbol">network:</span><span class="hljs-symbol">x:</span><span class="hljs-number">192</span><span class="hljs-symbol">:</span><span class="hljs-number">192</span><span class="hljs-symbol">:systemd</span> Network <span class="hljs-symbol">Management:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">dbus:</span><span class="hljs-symbol">x:</span><span class="hljs-number">81</span><span class="hljs-symbol">:</span><span class="hljs-number">81</span><span class="hljs-symbol">:System</span> message <span class="hljs-symbol">bus:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">polkitd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">998</span><span class="hljs-symbol">:</span><span class="hljs-number">996</span><span class="hljs-symbol">:User</span> <span class="hljs-keyword">for</span> <span class="hljs-symbol">polkitd:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">tss:</span><span class="hljs-symbol">x:</span><span class="hljs-number">59</span><span class="hljs-symbol">:</span><span class="hljs-number">59</span><span class="hljs-symbol">:Account</span> used by the trousers package to sandbox the tcsd <span class="hljs-symbol">daemon:</span>/dev/<span class="hljs-symbol">null:</span>/sbin/nologin <span class="hljs-symbol">postfix:</span><span class="hljs-symbol">x:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/spool/postfix</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">sshd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">74</span><span class="hljs-symbol">:</span><span class="hljs-number">74</span><span class="hljs-symbol">:Privilege-separated</span> <span class="hljs-symbol">SSH:</span>/var/empty/<span class="hljs-symbol">sshd:</span>/sbin/nologin <span class="hljs-symbol">chrony:</span><span class="hljs-symbol">x:</span><span class="hljs-number">997</span><span class="hljs-symbol">:</span><span class="hljs-number">995</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/lib/chrony</span><span class="hljs-symbol">:/sbin/nologin</span>
打印指定行(p)
[root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -n '2'p test.txt</span> <span class="hljs-symbol">bin:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:/sbin/NOLOGIN</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -n '2,5'p test.txt</span> <span class="hljs-symbol">bin:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:/sbin/NOLOGIN</span> <span class="hljs-symbol">dfsdfdsfsdfs:</span><span class="hljs-number">1241124</span><span class="hljs-symbol">:jksdfhdskjf</span><span class="hljs-symbol">:sfdsf</span><span class="hljs-symbol">:rao</span><span class="hljs-symbol">:</span><span class="hljs-number">325345345</span> <span class="hljs-number">222222</span><span class="hljs-symbol">:r</span>.<span class="hljs-symbol">o:</span>dfdsfdsg <span class="hljs-symbol">daemon:</span><span class="hljs-symbol">x:</span><span class="hljs-number">2</span><span class="hljs-symbol">:</span><span class="hljs-number">2</span><span class="hljs-symbol">:daemon</span><span class="hljs-symbol">:/sbin</span><span class="hljs-symbol">:/sbin/nologin</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -n '15,$'p test.txt</span> <span class="hljs-symbol">nobody:</span><span class="hljs-symbol">x:</span><span class="hljs-number">99</span><span class="hljs-symbol">:</span><span class="hljs-number">99</span><span class="hljs-symbol">:Nobody</span><span class="hljs-symbol">:/</span><span class="hljs-symbol">:/sbin/nologin</span> systemd-bus-<span class="hljs-symbol">proxy:</span><span class="hljs-symbol">x:</span><span class="hljs-number">999</span><span class="hljs-symbol">:</span><span class="hljs-number">997</span><span class="hljs-symbol">:systemd</span> Bus <span class="hljs-symbol">Proxy:</span>/<span class="hljs-symbol">:/sbin/nologin</span> systemd-<span class="hljs-symbol">network:</span><span class="hljs-symbol">x:</span><span class="hljs-number">192</span><span class="hljs-symbol">:</span><span class="hljs-number">192</span><span class="hljs-symbol">:systemd</span> Network <span class="hljs-symbol">Management:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">dbus:</span><span class="hljs-symbol">x:</span><span class="hljs-number">81</span><span class="hljs-symbol">:</span><span class="hljs-number">81</span><span class="hljs-symbol">:System</span> message <span class="hljs-symbol">bus:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">polkitd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">998</span><span class="hljs-symbol">:</span><span class="hljs-number">996</span><span class="hljs-symbol">:User</span> <span class="hljs-keyword">for</span> <span class="hljs-symbol">polkitd:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">tss:</span><span class="hljs-symbol">x:</span><span class="hljs-number">59</span><span class="hljs-symbol">:</span><span class="hljs-number">59</span><span class="hljs-symbol">:Account</span> used by the trousers package to sandbox the tcsd <span class="hljs-symbol">daemon:</span>/dev/<span class="hljs-symbol">null:</span>/sbin/nologin <span class="hljs-symbol">postfix:</span><span class="hljs-symbol">x:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/spool/postfix</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">sshd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">74</span><span class="hljs-symbol">:</span><span class="hljs-number">74</span><span class="hljs-symbol">:Privilege-separated</span> <span class="hljs-symbol">SSH:</span>/var/empty/<span class="hljs-symbol">sshd:</span>/sbin/nologin <span class="hljs-symbol">chrony:</span><span class="hljs-symbol">x:</span><span class="hljs-number">997</span><span class="hljs-symbol">:</span><span class="hljs-number">995</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/lib/chrony</span><span class="hljs-symbol">:/sbin/nologin</span>
-e选项允许在同一行里执行多条命令(把第一行打印出来并匹配bus)
[root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -e '1'p -e '/bus/'p -n test.txt</span> <span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> systemd-bus-<span class="hljs-symbol">proxy:</span><span class="hljs-symbol">x:</span><span class="hljs-number">999</span><span class="hljs-symbol">:</span><span class="hljs-number">997</span><span class="hljs-symbol">:systemd</span> Bus <span class="hljs-symbol">Proxy:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">dbus:</span><span class="hljs-symbol">x:</span><span class="hljs-number">81</span><span class="hljs-symbol">:</span><span class="hljs-number">81</span><span class="hljs-symbol">:System</span> message <span class="hljs-symbol">bus:</span>/<span class="hljs-symbol">:/sbin/nologin</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -e '1'p -e '/root/'p -n test.txt </span> <span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">operator:</span><span class="hljs-symbol">x:</span><span class="hljs-number">11</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:operator</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/sbin/nologin</span>
说明 “sed -e '1'p -e '/bus/'p -n test.txt”该命令的意思是:打印第一行,同时也打印出匹配有‘bus’的行。当打印的内容和匹配的内容相同时,会分别显示,即:两个命令同时进行但相对独立。
删除指定行(d)
[root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed '1,10'd test.txt</span> <span class="hljs-symbol">mail:</span><span class="hljs-symbol">x:</span><span class="hljs-number">8</span><span class="hljs-symbol">:</span><span class="hljs-number">12</span><span class="hljs-symbol">:mail</span><span class="hljs-symbol">:/var/spoooooool/mail</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">operator:</span><span class="hljs-symbol">x:</span><span class="hljs-number">11</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:operator</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">games:</span><span class="hljs-symbol">x:</span><span class="hljs-number">12</span><span class="hljs-symbol">:</span><span class="hljs-number">100</span><span class="hljs-symbol">:games</span><span class="hljs-symbol">:/usr/games</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">ftp:</span><span class="hljs-symbol">x:</span><span class="hljs-number">14</span><span class="hljs-symbol">:</span><span class="hljs-number">50</span><span class="hljs-symbol">:FTP</span> <span class="hljs-symbol">User:</span>/var/<span class="hljs-symbol">ftp:</span>/sbin/nologin <span class="hljs-symbol">nobody:</span><span class="hljs-symbol">x:</span><span class="hljs-number">99</span><span class="hljs-symbol">:</span><span class="hljs-number">99</span><span class="hljs-symbol">:Nobody</span><span class="hljs-symbol">:/</span><span class="hljs-symbol">:/sbin/nologin</span> systemd-bus-<span class="hljs-symbol">proxy:</span><span class="hljs-symbol">x:</span><span class="hljs-number">999</span><span class="hljs-symbol">:</span><span class="hljs-number">997</span><span class="hljs-symbol">:systemd</span> Bus <span class="hljs-symbol">Proxy:</span>/<span class="hljs-symbol">:/sbin/nologin</span> systemd-<span class="hljs-symbol">network:</span><span class="hljs-symbol">x:</span><span class="hljs-number">192</span><span class="hljs-symbol">:</span><span class="hljs-number">192</span><span class="hljs-symbol">:systemd</span> Network <span class="hljs-symbol">Management:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">dbus:</span><span class="hljs-symbol">x:</span><span class="hljs-number">81</span><span class="hljs-symbol">:</span><span class="hljs-number">81</span><span class="hljs-symbol">:System</span> message <span class="hljs-symbol">bus:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">polkitd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">998</span><span class="hljs-symbol">:</span><span class="hljs-number">996</span><span class="hljs-symbol">:User</span> <span class="hljs-keyword">for</span> <span class="hljs-symbol">polkitd:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">tss:</span><span class="hljs-symbol">x:</span><span class="hljs-number">59</span><span class="hljs-symbol">:</span><span class="hljs-number">59</span><span class="hljs-symbol">:Account</span> used by the trousers package to sandbox the tcsd <span class="hljs-symbol">daemon:</span>/dev/<span class="hljs-symbol">null:</span>/sbin/nologin <span class="hljs-symbol">postfix:</span><span class="hljs-symbol">x:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/spool/postfix</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">sshd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">74</span><span class="hljs-symbol">:</span><span class="hljs-number">74</span><span class="hljs-symbol">:Privilege-separated</span> <span class="hljs-symbol">SSH:</span>/var/empty/<span class="hljs-symbol">sshd:</span>/sbin/nologin <span class="hljs-symbol">chrony:</span><span class="hljs-symbol">x:</span><span class="hljs-number">997</span><span class="hljs-symbol">:</span><span class="hljs-number">995</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/lib/chrony</span><span class="hljs-symbol">:/sbin/nologin</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed '1,18'd test.txt</span> <span class="hljs-symbol">polkitd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">998</span><span class="hljs-symbol">:</span><span class="hljs-number">996</span><span class="hljs-symbol">:User</span> <span class="hljs-keyword">for</span> <span class="hljs-symbol">polkitd:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">tss:</span><span class="hljs-symbol">x:</span><span class="hljs-number">59</span><span class="hljs-symbol">:</span><span class="hljs-number">59</span><span class="hljs-symbol">:Account</span> used by the trousers package to sandbox the tcsd <span class="hljs-symbol">daemon:</span>/dev/<span class="hljs-symbol">null:</span>/sbin/nologin <span class="hljs-symbol">postfix:</span><span class="hljs-symbol">x:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/spool/postfix</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">sshd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">74</span><span class="hljs-symbol">:</span><span class="hljs-number">74</span><span class="hljs-symbol">:Privilege-separated</span> <span class="hljs-symbol">SSH:</span>/var/empty/<span class="hljs-symbol">sshd:</span>/sbin/nologin <span class="hljs-symbol">chrony:</span><span class="hljs-symbol">x:</span><span class="hljs-number">997</span><span class="hljs-symbol">:</span><span class="hljs-number">995</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/lib/chrony</span><span class="hljs-symbol">:/sbin/nologin</span>
注: 这种方法并不会删除文件的内容,知识打印在屏幕上的内容删除了指定行。那么如何直接删除文件中指定的内容呢?如下:
[root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># wc -l test.txt</span> <span class="hljs-number">23</span> test.txt [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -i '1,20'd test.txt</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># wc -l test.txt</span> <span class="hljs-number">3</span> test.txt [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># cat test.txt</span> <span class="hljs-symbol">postfix:</span><span class="hljs-symbol">x:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/spool/postfix</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">sshd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">74</span><span class="hljs-symbol">:</span><span class="hljs-number">74</span><span class="hljs-symbol">:Privilege-separated</span> <span class="hljs-symbol">SSH:</span>/var/empty/<span class="hljs-symbol">sshd:</span>/sbin/nologin <span class="hljs-symbol">chrony:</span><span class="hljs-symbol">x:</span><span class="hljs-number">997</span><span class="hljs-symbol">:</span><span class="hljs-number">995</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/lib/chrony</span><span class="hljs-symbol">:/sbin/nologin</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed -i '/SSH/'d test.txt</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># cat test.txt</span> <span class="hljs-symbol">postfix:</span><span class="hljs-symbol">x:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/spool/postfix</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">chrony:</span><span class="hljs-symbol">x:</span><span class="hljs-number">997</span><span class="hljs-symbol">:</span><span class="hljs-number">995</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/lib/chrony</span><span class="hljs-symbol">:/sbin/nologin</span>
查找替换(s) 类似于vim中的查找替换
[root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed '1,10s/root/toor/g' test.txt</span> <span class="hljs-symbol">toor:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:toor</span><span class="hljs-symbol">:/toor</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">bin:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:/sbin/NOLOGIN</span> <span class="hljs-symbol">dfsdfdsfsdfs:</span><span class="hljs-number">1241124</span><span class="hljs-symbol">:jksdfhdskjf</span><span class="hljs-symbol">:sfdsf</span><span class="hljs-symbol">:rao</span><span class="hljs-symbol">:</span><span class="hljs-number">325345345</span> <span class="hljs-number">222222</span><span class="hljs-symbol">:r</span>.<span class="hljs-symbol">o:</span>dfdsfdsg <span class="hljs-symbol">daemon:</span><span class="hljs-symbol">x:</span><span class="hljs-number">2</span><span class="hljs-symbol">:</span><span class="hljs-number">2</span><span class="hljs-symbol">:daemon</span><span class="hljs-symbol">:/sbin</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">ad11om:</span><span class="hljs-symbol">x:</span><span class="hljs-number">3</span><span class="hljs-symbol">:</span><span class="hljs-number">4</span><span class="hljs-symbol">:ad1om</span><span class="hljs-symbol">:/var/adm</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">lp:</span><span class="hljs-symbol">x:</span><span class="hljs-number">4</span><span class="hljs-symbol">:</span><span class="hljs-number">7</span><span class="hljs-symbol">:lp</span><span class="hljs-symbol">:/var/spoool/lpd</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">sync:</span><span class="hljs-symbol">x:</span><span class="hljs-number">5</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:sync</span><span class="hljs-symbol">:/sbin</span><span class="hljs-symbol">:/bin/sync</span> <span class="hljs-symbol">shutdown:</span><span class="hljs-symbol">x:</span><span class="hljs-number">6</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:shutdown</span><span class="hljs-symbol">:/sbin</span><span class="hljs-symbol">:/sbin/shutdown</span> <span class="hljs-symbol">halt:</span><span class="hljs-symbol">x:</span><span class="hljs-number">7</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:halo1t</span><span class="hljs-symbol">:/sbin</span><span class="hljs-symbol">:/sbin/halt</span> <span class="hljs-symbol">mail:</span><span class="hljs-symbol">x:</span><span class="hljs-number">8</span><span class="hljs-symbol">:</span><span class="hljs-number">12</span><span class="hljs-symbol">:mail</span><span class="hljs-symbol">:/var/spoooooool/mail</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">operator:</span><span class="hljs-symbol">x:</span><span class="hljs-number">11</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:operator</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">games:</span><span class="hljs-symbol">x:</span><span class="hljs-number">12</span><span class="hljs-symbol">:</span><span class="hljs-number">100</span><span class="hljs-symbol">:games</span><span class="hljs-symbol">:/usr/games</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">ftp:</span><span class="hljs-symbol">x:</span><span class="hljs-number">14</span><span class="hljs-symbol">:</span><span class="hljs-number">50</span><span class="hljs-symbol">:FTP</span> <span class="hljs-symbol">User:</span>/var/<span class="hljs-symbol">ftp:</span>/sbin/nologin <span class="hljs-symbol">nobody:</span><span class="hljs-symbol">x:</span><span class="hljs-number">99</span><span class="hljs-symbol">:</span><span class="hljs-number">99</span><span class="hljs-symbol">:Nobody</span><span class="hljs-symbol">:/</span><span class="hljs-symbol">:/sbin/nologin</span> systemd-bus-<span class="hljs-symbol">proxy:</span><span class="hljs-symbol">x:</span><span class="hljs-number">999</span><span class="hljs-symbol">:</span><span class="hljs-number">997</span><span class="hljs-symbol">:systemd</span> Bus <span class="hljs-symbol">Proxy:</span>/<span class="hljs-symbol">:/sbin/nologin</span> systemd-<span class="hljs-symbol">network:</span><span class="hljs-symbol">x:</span><span class="hljs-number">192</span><span class="hljs-symbol">:</span><span class="hljs-number">192</span><span class="hljs-symbol">:systemd</span> Network <span class="hljs-symbol">Management:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">dbus:</span><span class="hljs-symbol">x:</span><span class="hljs-number">81</span><span class="hljs-symbol">:</span><span class="hljs-number">81</span><span class="hljs-symbol">:System</span> message <span class="hljs-symbol">bus:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">polkitd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">998</span><span class="hljs-symbol">:</span><span class="hljs-number">996</span><span class="hljs-symbol">:User</span> <span class="hljs-keyword">for</span> <span class="hljs-symbol">polkitd:</span>/<span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">tss:</span><span class="hljs-symbol">x:</span><span class="hljs-number">59</span><span class="hljs-symbol">:</span><span class="hljs-number">59</span><span class="hljs-symbol">:Account</span> used by the trousers package to sandbox the tcsd <span class="hljs-symbol">daemon:</span>/dev/<span class="hljs-symbol">null:</span>/sbin/nologin <span class="hljs-symbol">postfix:</span><span class="hljs-symbol">x:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-number">89</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/spool/postfix</span><span class="hljs-symbol">:/sbin/nologin</span> <span class="hljs-symbol">sshd:</span><span class="hljs-symbol">x:</span><span class="hljs-number">74</span><span class="hljs-symbol">:</span><span class="hljs-number">74</span><span class="hljs-symbol">:Privilege-separated</span> <span class="hljs-symbol">SSH:</span>/var/empty/<span class="hljs-symbol">sshd:</span>/sbin/nologin <span class="hljs-symbol">chrony:</span><span class="hljs-symbol">x:</span><span class="hljs-number">997</span><span class="hljs-symbol">:</span><span class="hljs-number">995</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/var/lib/chrony</span><span class="hljs-symbol">:/sbin/nologin</span> 此处如果不使用head命令,将会显示test.txt全部内容。 [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># sed '1,10s/root/toor/g' test.txt | head -3</span> <span class="hljs-symbol">toor:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:toor</span><span class="hljs-symbol">:/toor</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">bin:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:/sbin/NOLOGIN</span> <span class="hljs-symbol">dfsdfdsfsdfs:</span><span class="hljs-number">1241124</span><span class="hljs-symbol">:jksdfhdskjf</span><span class="hljs-symbol">:sfdsf</span><span class="hljs-symbol">:rao</span><span class="hljs-symbol">:</span><span class="hljs-number">325345345</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># cat test.txt | head -3</span> <span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">bin:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:/sbin/NOLOGIN</span> <span class="hljs-symbol">dfsdfdsfsdfs:</span><span class="hljs-number">1241124</span><span class="hljs-symbol">:jksdfhdskjf</span><span class="hljs-symbol">:sfdsf</span><span class="hljs-symbol">:rao</span><span class="hljs-symbol">:</span><span class="hljs-number">325345345</span>
替换每行第一个字符串和最后一个字符串的位置:
[root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># head -3 test.txt</span> <span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">bin:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:/sbin/NOLOGIN</span> <span class="hljs-symbol">dfsdfdsfsdfs:</span><span class="hljs-number">1241124</span><span class="hljs-symbol">:jksdfhdskjf</span><span class="hljs-symbol">:sfdsf</span><span class="hljs-symbol">:rao</span><span class="hljs-symbol">:</span><span class="hljs-number">325345345</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># head -3 test.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'</span> /bin/<span class="hljs-symbol">bash:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:root</span> /sbin/<span class="hljs-symbol">NOLOGIN:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:bin</span> <span class="hljs-number">325345345</span><span class="hljs-symbol">:</span><span class="hljs-number">1241124</span><span class="hljs-symbol">:jksdfhdskjf</span><span class="hljs-symbol">:sfdsf</span><span class="hljs-symbol">:rao</span><span class="hljs-symbol">:dfsdfdsfsdfs</span>
说明: 小括号内的字符串可以用反斜杠跟数字组合按顺序来代替。
在每一行行首添加指定字符:
[root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># head -3 test.txt | sed -r 's/(.*)/AB:\1/'</span> <span class="hljs-symbol">AB:</span><span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">AB:</span><span class="hljs-symbol">bin:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:/sbin/NOLOGIN</span> <span class="hljs-symbol">AB:</span><span class="hljs-symbol">dfsdfdsfsdfs:</span><span class="hljs-number">1241124</span><span class="hljs-symbol">:jksdfhdskjf</span><span class="hljs-symbol">:sfdsf</span><span class="hljs-symbol">:rao</span><span class="hljs-symbol">:</span><span class="hljs-number">325345345</span> [root<span class="hljs-variable">@cham2</span> sed]<span class="hljs-comment"># head -3 test.txt | sed -r 's/(.*)/AB:&/'</span> <span class="hljs-symbol">AB:</span><span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">AB:</span><span class="hljs-symbol">bin:</span><span class="hljs-symbol">x:</span><span class="hljs-number">1</span><span class="hljs-symbol">:</span><span class="hljs-number">1</span><span class="hljs-symbol">:bin</span><span class="hljs-symbol">:/bin</span><span class="hljs-symbol">:/sbin/NOLOGIN</span> <span class="hljs-symbol">AB:</span><span class="hljs-symbol">dfsdfdsfsdfs:</span><span class="hljs-number">1241124</span><span class="hljs-symbol">:jksdfhdskjf</span><span class="hljs-symbol">:sfdsf</span><span class="hljs-symbol">:rao</span><span class="hljs-symbol">:</span><span class="hljs-number">325345345</span>
说明: 在此&代表前面括号中的内容=“\ 1”
以上是sed指令工具使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

CentOS 和 Ubuntu 的關鍵差異在於:起源(CentOS 源自 Red Hat,面向企業;Ubuntu 源自 Debian,面向個人)、包管理(CentOS 使用 yum,注重穩定;Ubuntu 使用 apt,更新頻率高)、支持週期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社區支持(CentOS 側重穩定,Ubuntu 提供廣泛教程和文檔)、用途(CentOS 偏向服務器,Ubuntu 適用於服務器和桌面),其他差異包括安裝精簡度(CentOS 精

CentOS 安裝步驟:下載 ISO 映像並刻錄可引導媒體;啟動並選擇安裝源;選擇語言和鍵盤佈局;配置網絡;分區硬盤;設置系統時鐘;創建 root 用戶;選擇軟件包;開始安裝;安裝完成後重啟並從硬盤啟動。

CentOS將於2024年停止維護,原因是其上游發行版RHEL 8已停止維護。該停更將影響CentOS 8系統,使其無法繼續接收更新。用戶應規劃遷移,建議選項包括CentOS Stream、AlmaLinux和Rocky Linux,以保持系統安全和穩定。

Docker利用Linux內核特性,提供高效、隔離的應用運行環境。其工作原理如下:1. 鏡像作為只讀模板,包含運行應用所需的一切;2. 聯合文件系統(UnionFS)層疊多個文件系統,只存儲差異部分,節省空間並加快速度;3. 守護進程管理鏡像和容器,客戶端用於交互;4. Namespaces和cgroups實現容器隔離和資源限制;5. 多種網絡模式支持容器互聯。理解這些核心概念,才能更好地利用Docker。

CentOS 已停止維護,替代選擇包括:1. Rocky Linux(兼容性最佳);2. AlmaLinux(與 CentOS 兼容);3. Ubuntu Server(需要配置);4. Red Hat Enterprise Linux(商業版,付費許可);5. Oracle Linux(與 CentOS 和 RHEL 兼容)。在遷移時,考慮因素有:兼容性、可用性、支持、成本和社區支持。

CentOS 停止維護後,用戶可以採取以下措施應對:選擇兼容髮行版:如 AlmaLinux、Rocky Linux、CentOS Stream。遷移到商業發行版:如 Red Hat Enterprise Linux、Oracle Linux。升級到 CentOS 9 Stream:滾動發行版,提供最新技術。選擇其他 Linux 發行版:如 Ubuntu、Debian。評估容器、虛擬機或云平台等其他選項。

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。
