海外主机测评

您现在的位置是:首页 > 国外服务器 > 正文

国外服务器

在Unix shell中提取子串的最简单方法是什么?

cds8202023-02-22国外服务器106
本站教程收集整理的这篇文章主要介绍了在Unixshell中提取子串的最简单方法是什么?,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。

本站教程收集整理的这篇文章主要介绍了在Unix shell中提取子串的最简单方法是什么?,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。
在Unix sHell(使用正则表达式)上提取子字符串的最简单方法是什么?

简单意味着:

>减少功能
>减少选择
>少学习

更新

我意识到正则表达式本身与简单性相冲突,我选择了最简单的一个作为选择的答案.对于模糊的问题我很抱歉.我更改了标题以更准确地表示此QA的当前状态.

切割可能有用:
$echo Hello | cut -c1,3
hl
$echo Hello | cut -c1-3
Hel
$echo Hello | cut -c1-4
Hell
$echo Hello | cut -c4-5
lo

SHell BuilTins对此也有好处,下面是一个示例脚本:

#!/bin/bash
# Demonstrates sHells built in ability to split stuff.  Saves on
# using sed and awk in sHell scripts. Can Help perfoRMANce.

shopt -o nounset
declare -rx       FILename=payroll_2007-06-12.txt

# Splits
declare -rx   NAME_PORTiON=${FILename%.*}     # Left of .
declare -rx      EXTENSION=${FILename#*.}     # Right of .
declare -rx           NAME=${name_PORTION%_*} # Left of _
declare -rx           DATE=${name_PORTION#*_} # Right of _
declare -rx     YEAR_MONTH=${DATE%-*}         # Left of _
declare -rx           YEAR=${YEAR_MONTH%-*}   # Left of _
declare -rx          MONTH=${YEAR_MONTH#*-}   # Left of _
declare -rx            DAY=${DATE##*-}        # Left of _

clear

echo "  Variable: (${FILename})"
echo "  Filename: (${name_PORTION})"
echo " Extension: (${EXTENSION})"
echo "      Name: (${name})"
echo "      Date: (${DATE})"
echo "Year/Month: (${YEAR_MONTH})"
echo "      Year: (${YEAR})"
echo "     Month: (${MONTH})"
echo "       Day: (${DAY})"

那输出:

Variable: (payroll_2007-06-12.txt)
  Filename: (payroll_2007-06-12)
 Extension: (txt)
      Name: (payroll)
      Date: (2007-06-12)
Year/Month: (2007-06)
      Year: (2007)
     Month: (06)
       Day: (12)

并且根据上面的Gnudif,总是有sed / awk / perl,因为什么时候变得非常艰难.

本站总结

以上是本站教程为你收集整理的在Unix shell中提取子串的最简单方法是什么?全部内容,希望文章能够帮你解决在Unix shell中提取子串的最简单方法是什么?所遇到的程序开发问题。

如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。

《在Unix shell中提取子串的最简单方法是什么?》来自互联网同行内容,若有侵权,请联系我们删除!

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~