大写在Unix中文本文件的第二列

大写在Unix中文本文件的第二列,unix,uppercase,Unix,Uppercase,我有一个三列的txt文件。第二列如下所示(每个字母是该列的一行): a t c a a t 在Unix中,我需要将第二列大写,但不知道如何(应该使用命令:|tr[a-z][a-z])。您能帮助我吗 awk '{$2 = toupper($2)}1' input-file 使用tr很难做到这一点,因为tr会不加区别地更改输入的每个字符。但您可以使用tr来使用类似以下内容的大写字母: awk '{c="tr [a-z] [A-Z]"; printf "%s%c&qu

我有一个三列的txt文件。第二列如下所示(每个字母是该列的一行):

  • a
  • t
  • c
  • a
  • a
  • t
  • 在Unix中,我需要将第二列大写,但不知道如何(应该使用命令:|tr[a-z][a-z])。您能帮助我吗

     awk '{$2 = toupper($2)}1' input-file
    
    使用
    tr
    很难做到这一点,因为
    tr
    会不加区别地更改输入的每个字符。但您可以使用
    tr
    来使用类似以下内容的大写字母:

    awk '{c="tr [a-z] [A-Z]"; printf "%s%c", $1, OFS;
        printf "%s", $2 | c; close c; print OFS $3}' input-file
    
    或者,如果您使用的是bash,并且输入文件由制表符分隔:

    paste <(cut -f 1 input) <(tr [a-z] [A-Z] < input | cut -f 2) <(cut -f 3 input)
    
    粘贴