首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sed作为模式"/“获取子字符串

如何使用sed作为模式"/“获取子字符串
EN

Stack Overflow用户
提问于 2018-10-25 07:53:24
回答 3查看 167关注 0票数 0

我有以下字符串:

/图书/A 00001/2018/01/15/会议厅_音乐

我想使用sed命令:

/book/A 00001/2018/01/15/

谢谢

问候

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-10-25 08:01:44

也许你在找:sed "s/\(.*\)Chamber_Music/\1/g"

票数 1
EN

Stack Overflow用户

发布于 2018-10-25 08:41:01

不需要使用sed,您可以使用普通的shell字符串处理:

代码语言:javascript
复制
filename='gash.txt'
new_filename="$filename.new"

while read line
do
    line=${line%/*}
    echo $line 

done <"$filename" >"$new_filename"  

#mv "$new_filename" "$filename"     # Commented out to be optional

考虑到你在第二个问题中的意见:

代码语言:javascript
复制
/book/A00001/2018/01/15
/book/A00001/2018/01/15
/book/A00001/2018/01/15
/book/A00001/2018/01/15
/book/A00001/2018/01/15
/book/A00001/2018/01/15
票数 0
EN

Stack Overflow用户

发布于 2018-10-30 07:30:11

您可以更改regexp sed分隔符..。请参阅s命令文档。如果你使用,例如。

代码语言:javascript
复制
sed 's:([a-zA-Z0-9/]*)[a-zA-Z]*$:\1:'

然后,/失去它的特殊待遇,:字符假定它。当然,您可以将匹配模式存储在环境变量中,然后将其提供给sed(1),并将所有/替换为\/以转义每个/

代码语言:javascript
复制
pattern=`echo "([a-zA-Z0-9/])[a-zA-Z]*\$" | sed 's/\//\\//'`
sed "s/${pattern}/\\1/"

但这更复杂。

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

https://stackoverflow.com/questions/52984108

复制
相关文章

相似问题

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