Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用BASH,选择行和列[CUT命令?]_Bash - Fatal编程技术网

使用BASH,选择行和列[CUT命令?]

使用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,没有其他内容。怎么做?使

在上面的文件中,我可以使用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,没有其他内容。怎么做?

使用
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目录