【问题标题】:Can I use awk to convert all the lower-case letters into upper-case?我可以使用 awk 将所有小写字母转换为大写吗?
【发布时间】:2012-12-10 21:48:13
【问题描述】:

我有一个混合了小写字母和大写字母的文件,我可以使用awk 将该文件中的所有字母转换为大写吗?

【问题讨论】:

标签: linux bash awk


【解决方案1】:

如果 Perl 是一个选项:

perl -ne 'print uc()' file
  • -n 循环输入文件,不自动打印行
  • -e 在引号中执行 perl 代码
  • uc() = 大写

打印全部小写:

perl -ne 'print lc()' file

【讨论】:

    【解决方案2】:

    试试这个:

    $ echo mix23xsS | awk '{ print toupper($0) }'
    MIX23XSS
    

    【讨论】:

      【解决方案3】:

      类似

      < yourMIXEDCASEfile.txt awk '{print toupper($0)}' > yourUPPERCASEfile.txt
      

      【讨论】:

      • 好吧...awk '{print toupper($0)}' yourMIXEDCASEfile.txt &gt; yourUPPERCASEfile.txt怎么样
      • 不是我对你的帖子投反对票,但是没有猫的第二种解决方案要好得多
      【解决方案4】:

      试试这个:

      awk '{ print toupper($0) }' <<< "your string"
      

      使用文件:

      awk '{ print toupper($0) }' yourfile.txt
      

      【讨论】:

      • 注意,特殊字符会失败:```awk '{ print toupper($0) }'
      • @SvennD 取决于版本 — 不适用于 mawk 1.3.3,但似乎适用于 GNU Awk 4.0.1 和 4.1.1。
      【解决方案5】:

      您可以使用awk,但tr 是更好的工具:

      tr a-z A-Z < input
      

      tr [:lower:] [:upper:] < input
      

      【讨论】:

      • 请注意(从 coreutils 8.23 开始)它将无法转换重音字符。
      【解决方案6】:

      你的意思是这个线程解释: http://www.unix.com/shell-programming-scripting/24320-converting-file-names-upper-case.html (好吧,这是关于文件名的,但同样的原则也适用于文件)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-04
        • 2011-06-01
        • 2015-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-26
        • 1970-01-01
        相关资源
        最近更新 更多