我有以下字符串:
/图书/A 00001/2018/01/15/会议厅_音乐
我想使用sed命令:
/book/A 00001/2018/01/15/
谢谢
问候
发布于 2018-10-25 08:01:44
也许你在找:sed "s/\(.*\)Chamber_Music/\1/g"
发布于 2018-10-25 08:41:01
不需要使用sed,您可以使用普通的shell字符串处理:
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考虑到你在第二个问题中的意见:
/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发布于 2018-10-30 07:30:11
您可以更改regexp sed分隔符..。请参阅s命令文档。如果你使用,例如。
sed 's:([a-zA-Z0-9/]*)[a-zA-Z]*$:\1:'然后,/失去它的特殊待遇,:字符假定它。当然,您可以将匹配模式存储在环境变量中,然后将其提供给sed(1),并将所有/替换为\/以转义每个/。
pattern=`echo "([a-zA-Z0-9/])[a-zA-Z]*\$" | sed 's/\//\\//'`
sed "s/${pattern}/\\1/"但这更复杂。
https://stackoverflow.com/questions/52984108
复制相似问题