开发者社区> 问答> 正文

在文件中搜索单词并将其从小写转换为大写

我在一个shell脚本上工作,该脚本从用户那里获取通配符,并在当前工作目录下的.txt文件中搜索匹配的单词(例如,通配符ar *查找文章等)。当找到单词时,应将它们从小写转换为大写(ARTICLE,ARE ...)。

我生成了一个while循环来检查.txt文件中的所有单词,并生成一个for循环来检查所有.txt文件。while循环逐字读取.txt文件。但是,它会找到与通配符完全匹配的所有单词;我无法将它们转换为大写。

....

while IFS= read -r word; do
    if [[ ${word,,} == ${string,,} ]] 
    then
        echo $word #to check the words          
        sed -i "s/${word}/${word^^}" $file                  
    fi
done

它会完美地打印所有单词,但不会将它们转换为文件中的大写字母,并给出错误as;

展开
收起
祖安文状元 2020-01-08 15:43:12 574 0
1 条回答
写回答
取消 提交回答
  • 您/在s/old/new/语句中缺少第二个。您还应该使用g修饰符替换一行上的所有匹配项。

    sed -i "s/${word}/${word^^}/g" $file

    2020-01-08 15:43:21
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载