Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/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:如何读取和选择带有特定数字的行?_Bash - Fatal编程技术网

Bash:如何读取和选择带有特定数字的行?

Bash:如何读取和选择带有特定数字的行?,bash,Bash,我有一个表在.txt文件中。我想选一行。该行必须由两列选择,这两列具有该行的特定编号 例如,我选择一行数字21.497和54.6753 使用bash脚本 21.480 54.6753 1.0000 1.6268 21.497 54.6753 1.0167 1.6174 21.514 54.6753 1.1941 1.5735

我有一个表在
.txt
文件中。我想选一行。该行必须由两列选择,这两列具有该行的特定编号

例如,我选择一行数字
21.497
54.6753

使用bash脚本

21.480       54.6753        1.0000        1.6268         
21.497       54.6753        1.0167        1.6174         
21.514       54.6753        1.1941        1.5735         
21.531       54.6753        1.0383        1.5674         

我们可能需要更多的帮助,比如输入数据是什么样子,以及您真正想要完成什么

/tmp/foo:

2.1 3.8
1.1 5.4
2.1 5.4

$ grep '2.1 5.4' /tmp/foo
2.1 5.4
打印21.514 54.6753 1.1941 1.5735


-grep上的F是将参数视为固定字符串,而不是正则表达式。因此,在本例中,它将把点视为文字点。

您好,欢迎使用So!这是获得帮助的地方,但请确保您阅读了所有页面,尤其是您尝试过的内容。如果你表现出你至少付出了努力,人们会很乐意帮助你。。。也就是说,请向我们展示您的工作示例,以及输入的内容。您的规格越清晰,得到的帮助就越大。即兴讲,这听起来像是一个
grep
awk
问题。请务必指定您的分隔符,以及是否可以有多个分隔符。可能您要的是
awk'/2.1/&&&/5.4/'文件
?在您的示例中没有带
2.1
5.4
的行。您的意思是让
'.
匹配
2
1
之间任何字符的零次或多次出现吗?行=$(awk'/21.581/&&&/54.6845/'pointfilename.txt);echo-e$line | tr-d'\n'>>opoint.txt这是我在程序中编写的,但它仍然不起作用;它挑选的东西;但不打印它我写的数字2.1和5.4只是一个例子,现在我把它变得更具体了。我复制了一部分数据,我需要选择一行数字21.514和54.6753。但不只是对所有行进行编号并将其作为变量。
-F
实际上告诉
grep
将参数视为固定字符串,而不是正则表达式(这意味着不仅仅将点视为文字)。
your_var=$(grep -F '21.514' your_file | grep -F '54.6753')
echo "$your_var"