【发布时间】:2021-05-05 22:11:35
【问题描述】:
我有一个包含三列的 txt 文件。第二列如下(每个字母为该列的一行):
- 一个
- t
- c
- 一个
- 一个
- t
我需要在 Unix 中将第二列大写,但不知道如何(应该使用命令:| tr [a-z] [A-Z]。您能帮帮我吗?
【问题讨论】:
我有一个包含三列的 txt 文件。第二列如下(每个字母为该列的一行):
我需要在 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)
【讨论】: