首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我怎样才能替换巴什壳中的圆点?

我怎样才能替换巴什壳中的圆点?
EN

Stack Overflow用户
提问于 2010-12-19 08:56:43
回答 4查看 11.8K关注 0票数 2

我想做这样的事:

代码语言:javascript
运行
复制
echo "abc edg.txt" | awk -F. '{print $0"---"$1}'

我希望结果应该是:

abc edg-txt

但事实证明:

abc edg.txt--abc edg

是什么导致了这种行为,以及如何修复代码以产生我期望的输出?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-19 09:00:00

在awk中,$0计算出整个记录,字段索引是基于一个的.

你可能想做:

代码语言:javascript
运行
复制
$ echo "abc edg.txt" | awk -F. '{print $1"---"$2}'
abc edg---txt
票数 10
EN

Stack Overflow用户

发布于 2010-12-19 17:04:52

如果您只想替换圆点:

代码语言:javascript
运行
复制
var="abc edg.txt"
echo ${var/./---}
票数 12
EN

Stack Overflow用户

发布于 2010-12-19 09:29:18

Frédéric Hamidi's answerawk解决了您的问题,但是既然您询问了如何在Bash中按点拆分字符串,下面的答案就是这样做的,而不必求助于awk

代码语言:javascript
运行
复制
$ foo="abc edg.txt" ; IFS=. ; a=($foo) ; echo ${a[0]}---${a[1]}
abc edg---txt

如果你只想在最后一个“分手”,那就更容易了。在字符串中:

代码语言:javascript
运行
复制
$ foo="abc edg.txt" ; echo ${foo%.*}---${foo##*.}
abc edg---txt
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4482225

复制
相关文章

相似问题

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