Luk*_*uke 2 bash shell awk cut
我有一个字符串,例如plantford1775.274.284b63.11.
我一直习惯identity=$( echo "$identity" | cut -d'.' -f3)在每个点处进行剪切,然后选择第三部分。我只剩下284b63.
这部分的格式始终是一个字母,中间夹有不同数量的数字。我想取这封信之前的前几个数字。示例代码行如下:
identity=$( echo "$identity" | cut -d'anyletter' -f1)
Run Code Online (Sandbox Code Playgroud)
我应该用什么替换anyletter来剪切那里列出的任何字母,以便我以字符串结尾284?
这可以在单个中完成awk,请尝试使用您显示的示例进行以下编写和测试。
echo "$identity" | awk -F'.' '{sub(/[^0-9].*/,"",$3);print $3}'
Run Code Online (Sandbox Code Playgroud)
解释:简单的解释是将echo命令的输出作为标准输入传递给awk代码。在awk程序中,设置字段分隔符作为.值。然后在第三个字段中用 NULL 替换(使用 的sub函数awk)除数字之外的所有内容,然后打印它。
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |