删除bash中大写字母的单词

时间:2018-09-28 22:10:06

标签: bash sed tr

如何删除BASH字符串中包含大写字母的单词? 例如。

输入:

Taco burrito Mexico fiesta

输出:

burrito fiesta

我在Stack Overflow上看到的解决方案不适用于我,因为正在使用的Linux机器不接受-r开关。

4 个答案:

答案 0 :(得分:1)

您可以使用此sed

s='Taco burrito Mexico fiesta'
sed 's/[[:upper:]][^[:blank:]]*[[:blank:]]*//g' <<< "$s"

burrito fiesta

详细信息:

  • [[:upper:]]:匹配大写字母
  • [^[:blank:]]:匹配除空格或制表符之外的任何字符
  • [[:blank:]]:匹配空格或制表符

答案 1 :(得分:1)

为了娱乐,perl

perl -aE 'say "@{[ grep {not /^[[:upper:]]/} @F ]}"' file

答案 2 :(得分:0)

@app.route("/comi", methods=['POST'])
def main():
    mi = cv2.imdecode(np.fromstring(request.files['file'].read(), np.uint8), cv2.IMREAD_COLOR )
    co = cv2.imread(random.choice(co_list))
    cominame = morph(co, mi, ld, app.static_folder)
    return send_file(cominame, mimetype='image/png')

答案 3 :(得分:0)

bash

set -- Taco burrito Mexico fiesta ; LC_ALL=C; echo ${@/*[A-Z]*}

或者:

a=(Taco burrito Mexico fiesta) ; LC_ALL=C; echo ${a[@]/*[A-Z]*}

(任一)的输出:

burrito fiesta