首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何递增这些代码?

如何递增这些代码?
EN

Stack Overflow用户
提问于 2018-05-28 16:25:22
回答 3查看 66关注 0票数 -2

我正在收集数据,但我收集的一些数据具有如下输出。

代码语言:javascript
复制
$ 2001 xei_1/2-10 
$ 2002 xei_2/3-7 

应该是这样的

代码语言:javascript
复制
$ 2001 xei_1/2
$ 2001 xei_1/3 
$ 2001 xei_1/4
$ 2001 xei_1/5
$ 2001 xei_1/6
$ 2001 xei_1/7
$ 2001 xei_1/8
$ 2001 xei_1/9
$ 2001 xei_1/10

您能告诉我如何使用bash脚本来增加这些数据吗?提前感谢您!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-28 18:14:24

最简单的是awk

代码语言:javascript
复制
awk -F '[/-]' '{for(i=$2;i<=$3;++i) print $1"/"i }'

这将在用/-分隔的字段中拆分每一行。所以你有3个字段,字段$1是你想要保留的。字段$2是范围的开始,字段$3是范围的结束。因此,for-loop就是它所需要的,它会打印重建的版本。

票数 2
EN

Stack Overflow用户

发布于 2018-05-28 17:43:24

使用awk,您可以执行此转换:

代码语言:javascript
复制
cat file
$ 2001 xei_1/2-10 
$ 2002 xei_2/3-7 

awk -F'[/-]' '{for (i=$(NF-1);i<=$NF;i++){a=$0;gsub(/\/.*/,"/"i,a);print a}}' file
$ 2001 xei_1/2
$ 2001 xei_1/3
$ 2001 xei_1/4
$ 2001 xei_1/5
$ 2001 xei_1/6
$ 2001 xei_1/7
$ 2001 xei_1/8
$ 2001 xei_1/9
$ 2001 xei_1/10
$ 2002 xei_2/3
$ 2002 xei_2/4
$ 2002 xei_2/5
$ 2002 xei_2/6
$ 2002 xei_2/7
票数 2
EN

Stack Overflow用户

发布于 2018-05-28 16:51:53

代码语言:javascript
复制
for i in {1..10}
do
  echo "2001 xei_1/$i"
done
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50562054

复制
相关文章

相似问题

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