首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cut和bash

使用cut和bash
EN

Stack Overflow用户
提问于 2020-07-21 21:22:06
回答 3查看 86关注 0票数 1

我在试着切断这条线

代码语言:javascript
复制
`Cycling-Tour.Of.Great.Britain.Results-Cycling.txt`
 to
`cycling-tour.of.great.britain.txt`

因此,我希望删除这一部分。结果-在bash脚本中使用cut循环,但没有成功,我尝试过

代码语言:javascript
复制
`txtname=$(echo "$txtname" | tr '[A-Z]' '[a-z]' | cut -d "-" -f2,11)`

它对大写字母进行排序,但它删除了大部分行。任何帮助都将不胜感激

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-07-21 22:36:00

尝尝这个

代码语言:javascript
复制
$ name='Cycling-Tour.Of.Great.Britain.Results-Cycling.txt'

转换为小写

代码语言:javascript
复制
$ echo ${name,,}
cycling-tour.of.great.britain.results-cycling.txt

并删除“Results-Cycling”

代码语言:javascript
复制
$ lower=${name,,}
$ echo ${lower//.results-cycling/}
cycling-tour.of.great.britain.txt
票数 0
EN

Stack Overflow用户

发布于 2020-07-21 22:29:50

bash有不错的字符串解析功能。在不产生这么多子进程的情况下,有一些选项。

使用

代码语言:javascript
复制
$: declare -l txtname

首先,你不必再担心案例了。

代码语言:javascript
复制
$: txtname=Cycling-Tour.Of.Great.Britain.Results-Cycling.txt
$: IFS=. read a b c d x e <<< "$txtname"
$: echo "$a.$b.$c.$d.$e"
cycling-tour.of.great.britain.txt

或者只是

代码语言:javascript
复制
echo "${txtname/results-cycling.}"
cycling-tour.of.great.britain.txt

如果你只是想使用cut -

代码语言:javascript
复制
$: cut -d . -f 1-4,6 <<< "${txtname,,}"
cycling-tour.of.great.britain.txt
票数 2
EN

Stack Overflow用户

发布于 2020-07-21 22:46:01

代码语言:javascript
复制
prefix=$(echo "Cycling-Tour.Of.Great.Britain.Results-Cycling.txt" | cut -d'.' -f1-4 | tr '[A-Z]' '[a-z]')

echo "${prefix}.txt"

生成子进程是可以的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63015455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档