使用BASH,选择行和列[CUT命令?]
在上面的文件中,我可以使用cat命令轻松打印出列使用BASH,选择行和列[CUT命令?],bash,Bash,在上面的文件中,我可以使用cat命令轻松打印出列 1 A 18 -180 2 B 19 -180 3 C 20 -150 50 D 21 -100 128 E 22 -130 10 F 23 -0 10 G 23 -0 在这种情况下,输出将是第三列 但是,我想做的是不同的事情。例如,我想根据行元素选择元素 因此,如果我从第二行中选择B,打印输出将是[第二列中与“B”相关的行][列=3]=[2][3]。只有19,没有其他内容。怎么做?使
1 A 18 -180
2 B 19 -180
3 C 20 -150
50 D 21 -100
128 E 22 -130
10 F 23 -0
10 G 23 -0
在这种情况下,输出将是第三列
但是,我想做的是不同的事情。例如,我想根据行元素选择元素
因此,如果我从第二行中选择B,打印输出将是[第二列中与“B”相关的行][列=3]=[2][3]。
只有19,没有其他内容。怎么做?使用awk
:
cat /file_directory | cut -d' ' -f3
awk
将每一行拆分为字段(默认情况下,在字段分隔符中使用任意空格)。每个语句都有两部分:一个用于选择行的模式,以及对选定行执行的操作。在上面,我们检查第二列($2
)的值是否为“B”
;对于每个为真的行,我们在第3列中打印值。使用awk
:
cat /file_directory | cut -d' ' -f3
$ awk '$2 == "B" {print $3}' file.txt
19
awk
将每一行拆分为字段(默认情况下,在字段分隔符中使用任意空格)。每个语句都有两部分:一个用于选择行的模式,以及对选定行执行的操作。在上面,我们检查第二列($2
)的值是否为“B”
;对于每个为真的行,我们在第3列中打印值。#/垃圾箱/垃圾箱
$ awk '$2 == "B" {print $3}' file.txt
19
cat sofile+.txt | tr-s'>sofile1+.txt
mv sofile1+.txt sofile+.txt
cat>edcommands+.sh#/垃圾箱/垃圾箱
cat sofile+.txt | tr-s'>sofile1+.txt
mv sofile1+.txt sofile+.txt
cat>edcommands+.sh首先,使用cut
和空白分隔符无法轻松打印第三列,因为列之间的空白数量不是恒定的。其次,我不明白你想做什么——什么是“元素”,而不是“行元素”?您的预期输出是什么?您如何指定您选择了“B”?cat
在这里没有做任何有趣的事情cut
完成所有工作,并且可以在不使用cat
的情况下完成:cut-d'-f3/file_目录
。首先,使用cut
和空白分隔符无法轻松打印第三列,因为列之间的空白数量不是恒定的。其次,我不明白你想做什么——什么是“元素”,而不是“行元素”?您的预期输出是什么?您如何指定您选择了“B”?cat
在这里没有做任何有趣的事情<代码>剪切
完成所有工作,并且可以在不使用cat
的情况下执行此操作:cut-d'-f3/file\u目录
。