shell 标签

Ubuntu 20.04 终端关机和重启命令 有更新!

  |   0 评论   |   933 浏览

重启命令:
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机

如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启

使用sed去除maven项目中xml文件中的注释-支持单行&多行处理 有更新!

  |   0 评论   |   1,877 浏览

场景:
在做一些自动化的脚本处理. 现在要提取Maven工程中的pom.xml文件中的引用jar包的版本定义.
如:

<properties>
        <leo.pdf.version>1.0.2</leo.pdf.version>
</properties>

此时需要准确为别标签 properties内部的内容. 同时还要对里面可能存在的注释进行识别. 以便进行区分过滤.最终得到一个真正的版本定义.
可能遇到的问题:

  • 被注释掉的内容
<!-- <leo.pdf.version>1.0.2</leo.pdf.version> -->
  • 正文部分后面包含注释内容
<leo.pdf.version>1.0.2</leo.pdf.version><!--  跟在右边的注释-->
  • 多行注释
<leo.pdf.version>1.0.2</leo.pdf.version>
<!--  第一行
        第二行
跟在右边的注释
-->
  • 行内多注释注释
<leo.pdf.version>1.0.2</leo.pdf.version><!--  第一个注释 -->  <leo.auth.version>1.0.0</leo.auth.version><!--  第二个注释 -->

虽然这些问题可以规范大家的编码规则 .但是对于一个写自动化处理脚本来说,还是要尽可能的兼容所有的场景才是.

sed 中的正则表达式 有更新!

  |   0 评论   |   3,518 浏览

简单介绍 sed 的正则表达式的使用注意事项.可以看如下的几个case:

一个case:

输入: echo "abcwwwdc456" | gsed -E 's/(abc)([\w]+)(.*456)/\1替换后的字符\3/g'
输出:  abc替换后的字符dc456 
解释: [\w]+只匹配到了所有的`w`.没有匹配后面的`dc`,所以dc没有被替换. 
原因: 实际上字符集是`\`和`w`两者的集合.并不是 **匹配数字和字母下划线** , `\`在 `[ ]`中没有特殊的含义.所以也就无法构建出`\w`

第二个case:

输入: echo "abcwwwdc456" | gsed -E 's/(abc)(\w+)(.*456)/\1替换后的字符\3/g'
输出: abc替换后的字符456
解释: `\w`被识别为了字符集. **数字和字母下划线** , 因此匹配到了w以及后面的dc
原因: 在sed的普通的`s语句`中.是支持如 `\w`,`\b`此类的字符集的.

第三个case:

输入: echo "abcwwwdc456" | ggrep -o -P --color=auto  '(abc)([\w]+)'
输出: abcwwwdc456
解释: `grep`的正则的字符集的定义支持把`\w`放到`[]`中定义新的字符集. 这个更倾向于更常见的正则语法. 写起来也更自然一些
原因: 这个grep使用的是perl语法风格的正则. 因此支持这样处理.

sed 入门详解 有更新!

  |   0 评论   |   4,017 浏览

记录了 sed 的常用命令.主要是字符串替换操作. 从其基本语法.到常用命令.以及命令使用的基本核心点进行了主要阐述.阅读此文后能够对 sed 有一个基本的理解.
基本能够覆盖常用的使用场景.

OS X 中使用 sed 进行行转列的特殊处理 有更新!

  |   0 评论   |   6,129 浏览

在 Linux 环境中,可以直接使用如下命令: echo "a,b,c" | sed 's/,/\n/g'直接完成行转列的输出;但是此命令在 OS X 环境中无法正常运行;本文对此问题进行了简单的研究实践;这个是由于 OS X 使用的sed版本与GNU版本不太一样.其使用的是BSD版本的sed命令,使用brew install gnu-sed安装命令,并且使用:gsed来使用GNU版本的sed命令;

shell变量中的回车符处理 有更新!

  |   0 评论   |   4,957 浏览

介绍了 Linux 和 Unix 不同环境下需要处理\r相关的处理办法.可以使用sed , tr 以及${var//origin/replace}三种处理办法.同时说明了最后一种是效率最高的.
同时本文也对不同环境中 shell 脚本语法的不同之处进行了简单说明.以期在不同的环境里面可以正确的处理\r的清除问题.
处理方法如下:

echo "$a" | tr -d '\r' | od -c
echo "$a" | sed $'s/\r//g' | od -c
echo "${a//$'\r'/}" | od -c

ECHO基本使用 有更新!

  |   0 评论   |   3,048 浏览

简单介绍了echo命令的基本使用方法与一些常见的使用场景;包括基本的常用的几个参数 -n,-e的介绍使用,同时对参数的是否使用括号的区别与最佳实践进行了说明与实践;