Xshell学习第七课:sed语句

--sed命令;

       Linux文本处理处理三剑客之sed

       --sed stream EDite

              作为行编辑器,对文本进行编辑(以行为单位进行编辑)

              注意:sed编辑文件,却不改变原文件

       --sed工作原理

              指定一个文本文件,以此读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(使用正则表达式进行匹配),对匹配后的内容进行修改(替换,删除,打印,修改,保存)

       --sed用法:

              Sed [参数] “sed自己独立的语法格式和语句” [文本文件]

常见选项

      -n  拒接默认显示

      -r  指定使用扩展的正则表达式

              所有的\都不要      | 或者

      -e  script for while if

  -f  指定脚本文件

      -l  指定文本换行的长度

      -(i) 直接修改文件内容(不建议使用)

地址界定方式

1、 数字指定步长

      Sed -n ‘1~3p’ 文件名

2、 直接匹配数值

       Sed -n ‘5,7p’ 文件名

3、$ 指定行尾

 

    Sed -n ‘10,$p’ 文件名

 4、/正则/

            Sed -n ‘/k\{5,、}/,$p’ abc

 5、0,addr

            Addr可以为数字/$/正则表达式

            Sed -n ‘0,/k\{5,\}/p’ abc

 6、addr,+N

            配置addr行到N行

            Sed -n ‘/fd/,+5p’ abc

【Vim.代表光标所在当前行:”.,$s/^/#/”】注释

指定光标所在行下三行取消注释【vim:.,+3s/^#//】

 

常见命令

            -p print 默认在屏幕上显示出来  建议和 -n  一起使用;

            -c 替换行

                      Sed “/aaaa/c \A” a

            -d 删除

                      Sed “/aaaa/d” a

                      Sed “1,3d” a

            -n   -N    读取/添加 模式匹配到的行的下一行内容,再对其进行操作

            -w   保存文件内容到一个新的文件

                   Sed “/patthen/w 新的文件名“ 原来的文件名

                   Sed “/k/w /tmp/aabbcc“ abc

            -s   文本内容替换   默认替换模式空间匹配到第一项内容

                      语法格式: s/pattern/字符串/

                                中间的斜杠可以替换为任意一个特殊字符

                      -g  全部替换

                       \1 \2  和正则表达式的分组相同,实现反向应用;

                              指定某一个匹配项进行修改替换

                       & 调用前面匹配的内容(pattern)

                          Sed “s/r..t/&er/g“ 文件

             -I   在匹配行的上一行去添加指定内容

                       Sed “/for/i\abc” 99xfb.sh

             -a   在匹配行的下一行添加指定内容

                       Sed “/for/a\abc” 99xfb.sh

              

练习;

删除/boot/grub/grub.conf文件中所有空白开头的行的行首的空白字符;

  Sed ‘s/^[[:space:]]\+//g’ /boot/grub/grub.conf

删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

  Sed ‘s/^#[[:space:]]\+//’ /etc/fstab

给定一个目录,取出其目录名

  --dirname   --   取出文件路径的路径部分

  --base那么  -- 取出文件路径的文件名部分

给定一个目录,取出其文件名

 

显示菜单

 

Sed的高级应用

            模式空间  --- 后来的 space“占有空间”

 

转载于:https://www.cnblogs.com/huangchuan/p/11378537.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在这个问题中,用户遇到了一个问题,即在xshell中运行命令"keytool"时出现了"-bash: keytool:未找到命令"的错误提示。根据引用,这可能是由于Bash中的安全漏洞导致的。此漏洞可以在受限模式(rbash)中通过将命令添加到BASH_CMDS数组,调用包含斜杠的命令来实现。 要解决这个问题,可以尝试以下几步: 1. 首先,确保你的系统已经安装了keytool命令。可以通过运行以下命令来检查: sudo yum update -y perl-macros perl-Pod-Escapes perl perl-libs 这个命令将帮助你更新所需的perl软件包。 2. 如果keytool命令已经安装,但仍然出现"-bash: keytool:未找到命令"的错误提示,那么你可以尝试重新安装keytool。你可以通过完全卸载后再重新安装来实现。确保在重新安装之前不要断开xshell的远程连接,以确保安装过程顺利进行。具体的安装和卸载步骤可能因操作系统和软件版本而有所不同,建议你查阅相应的文档或官方网站以获取详细的安装和卸载说明。 你可以参考https://www.openssh.com/releasenotes.html 网站上的文档,了解更多关于OpenSSH软件的版本信息和更新内容。 如果问题仍然存在,建议你检查系统的环境变量配置和权限设置,确保keytool命令在可执行路径中,并且用户具有执行该命令的权限。 总之,要解决xshell中出现"-bash: keytool:未找到命令"的错误提示,你可以尝试更新perl软件包、重新安装keytool、检查环境变量配置和权限设置等方法。希望这些步骤能够帮助你解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Centos7系统安全漏洞及修复方案](https://blog.csdn.net/Sara_cloud/article/details/115456192)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值