Unix 中的字符串替换
String replace in unix
我要删除数字后的一些文字,例如:1.2.0_testing。我只想要 1.2.0 的数字部分。所以下划线之后的任何内容都需要删除。
下面是我使用的代码:
echo $str | sed 's/_*//'
但是通配符似乎不起作用,我仍然得到完整的字符串。谁能帮帮我。
谢谢!
试试这个,
echo $str | sed 's/_.*//'
.
- 匹配任何单个字符。
*
- 匹配前一个字符的零次或多次出现
因此,_.*
表示 _
.
之后的 0 个或多个字符
无需昂贵的 fork 即可运行 sed、awk 或 - 喘息! - 珀尔。 shell 可以很好地做到这一点:
$ str=1.2.0_testing
$ echo ${str%%_*} # Remove longest part from the right matching _*
1.2.0
在精美的 shell 手册中了解有关使用 %、%%、#、## 进行内置字符串操作的所有信息。这些从右侧(百分比)或左侧(散列)中删除最短(单)或最长(双)匹配。
我要删除数字后的一些文字,例如:1.2.0_testing。我只想要 1.2.0 的数字部分。所以下划线之后的任何内容都需要删除。 下面是我使用的代码:
echo $str | sed 's/_*//'
但是通配符似乎不起作用,我仍然得到完整的字符串。谁能帮帮我。
谢谢!
试试这个,
echo $str | sed 's/_.*//'
.
- 匹配任何单个字符。
*
- 匹配前一个字符的零次或多次出现
因此,_.*
表示 _
.
无需昂贵的 fork 即可运行 sed、awk 或 - 喘息! - 珀尔。 shell 可以很好地做到这一点:
$ str=1.2.0_testing
$ echo ${str%%_*} # Remove longest part from the right matching _*
1.2.0
在精美的 shell 手册中了解有关使用 %、%%、#、## 进行内置字符串操作的所有信息。这些从右侧(百分比)或左侧(散列)中删除最短(单)或最长(双)匹配。