从命令输出中删除不重要的字符

从命令输出中删除不重要的字符

我的 Linux 机器中的 version 命令显示以下输出

version


Red.Hat.OS. release..........5.5
APP.Release.............4.2.0.0-02

怎么去掉中间的“" 点字符而不将其从参数中删除,如下所示:

 version | .......


 Red.Hat.OS. release          5.5
 APP.Release version         4.2.0.0-02
  • 参数中备注字符之间只能是一个点字符

答案1

  • 用 TAB替换第一次出现的 >1 .sed 's/\.\.\+/\t/'
  • .用 TAB替换所有出现的 >1 : sed 's/\.\.\+/\t/g'/awk -F"[.][.]+" -vOFS="\t" '($1=$1)||1'
  • 将第一次出现的 >1.后跟数字替换为 TAB:sed 's/\.\.\+\([[:digit:]]\)/\t\1/'
  • 将所有出现的 >1.后跟数字的情况替换为 TAB:sed 's/\.\.\+\([[:digit:]]\)/\t\1/g'/gawk -vRS="[.][.]+[[:digit:]]" '(ORS=(RT?"\t"substr(RT,length(RT)):""))||1'

所有这些命令都会针对给定的输入返回您想要的输出。

请随时要求解释和/或调整。

相关内容