gpt4 book ai didi

linux - Linux Bash 中的模式匹配

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:09:26 24 4
gpt4 key购买 nike

有人知道如何在 Linux 中通过 sed 删除以下字符串中的模式“@TechCrunch:”吗?

str="0,RT @TechCrunch: The Tyranny Of Government And Our Duty Of Confidentiality As Bloggers."

因此所需的输出将是:

"0,RT The Tyranny Of Government And Our Duty Of Confidentiality As Bloggers."

我尝试了很多方法,但没有一个有效,例如:

echo $str | sed 's/@[a-zA-Z]*\ //'

最佳答案

对已经在 shell 变量中的单行使用 sed(或任何其他外部工具)效率极低。让 shell 自己进行替换要容易得多。

#!/bin/bash
# ^- must be /bin/bash, not /bin/sh, for extglobs to be available

shopt -s extglob # put this somewhere early in your script to enable extended globs

str="0,RT @TechCrunch: The Tyranny Of Government And Our Duty Of Confidentiality As Bloggers."
echo "${str//@+([[:alpha:]]): /}"

这使用 extglob通过内置的 shell 模式匹配提供更强大的模式匹配的语法; +(foo) 是等同于正则表达式 (foo)+ 的 extglob。

关于linux - Linux Bash 中的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30220005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com