在bash中剪切字符串的第一部分和最后一部分
我有一个字符串具有以下格式:在bash中剪切字符串的第一部分和最后一部分,bash,cut,awk,sed,Bash,Cut,Awk,Sed,我有一个字符串具有以下格式: aa_bb_cc_dd aa_bb_cc_dd_ee_ff 我想获得: bb_cc bb_cc_dd_ee 我尝试过“剪切”,但未能获得我想要的。使用: 解释 sed-e用于执行多个命令 's/^[^\u]*\u/'从开始到开始删除\u 's/[^\u]*$/'从最后一个\uu删除到行尾 带有: 解释 sed-e用于执行多个命令 's/^[^\u]*\u/'从开始到开始删除\u 's/[^\u]*$/'从最后一个\uu删除到行尾 使用bash时,可以使用内置
aa_bb_cc_dd
aa_bb_cc_dd_ee_ff
我想获得:
bb_cc
bb_cc_dd_ee
我尝试过“剪切”,但未能获得我想要的。使用:
解释
用于执行多个命令sed-e
从开始到开始删除's/^[^\u]*\u/'
\u
从最后一个's/[^\u]*$/'
删除到行尾\uu
用于执行多个命令sed-e
从开始到开始删除's/^[^\u]*\u/'
\u
从最后一个's/[^\u]*$/'
删除到行尾\uu
bash
时,可以使用内置程序执行此任务:
strip_headtail() {
local s=$1
## strip the head
s=${s#*_}
## strip the tail
s=${s%_*}
echo ${s}
}
strip_headtail aa_bb_cc_dd
strip_headtail aa_bb_cc_dd_ee_ff
您可能希望查看bash手册(manbash
)以了解有关此方面的更多信息。
搜索删除匹配的前缀模式resp。删除匹配的后缀模式。使用
bash
时,可以使用内置程序执行此任务:
strip_headtail() {
local s=$1
## strip the head
s=${s#*_}
## strip the tail
s=${s%_*}
echo ${s}
}
strip_headtail aa_bb_cc_dd
strip_headtail aa_bb_cc_dd_ee_ff
您可能希望查看bash手册(manbash
)以了解有关此方面的更多信息。
搜索删除匹配的前缀模式resp。删除匹配的后缀模式。我认为粘贴大型文档部分是垃圾邮件。推荐信就足够了。谢谢你的帮助。@Alfe谢谢你的提示。它总是一个问题,什么“大”意味着……无论如何,我用更简洁的东西代替它……如果你想对引用的文本的具体细节发表评论,那么引用它是有意义的,但是如果它只是一种类似的东西,我更喜欢你现在选择的方式:-我认为把大量的文档部分粘贴为垃圾邮件。推荐信就足够了。谢谢你的帮助。@Alfe谢谢你的提示。“大”是什么意思一直是个问题……无论如何,我用更简洁的词来代替它……如果你想对引用的文本的某个具体细节发表评论,引用这样的片段是有意义的,但如果它只是一个see-all类型的东西,我更喜欢你现在选择的方式:-)
strip_headtail() {
local s=$1
## strip the head
s=${s#*_}
## strip the tail
s=${s%_*}
echo ${s}
}
strip_headtail aa_bb_cc_dd
strip_headtail aa_bb_cc_dd_ee_ff