在 txt 文件中不同列的两个特定值之间取行
Take lines between two specific values from different columns in a txt file
如何从 .txt 文件中获取不同列值之间的行?
我有一个包含很多列的文本文件(如下所示),我需要获取包含在第二列位置和第三列位置之间的行。
1 10385389 10385390 . 21
1 10385390 10385391 . 22
1 10385391 10385392 . 22
1 10385392 10385393 . 21
1 10385393 10385394 . 22
1 10385394 10385395 . 25
1 10385395 10385396 . 25
1 10385396 10385397 . 25
1 10385397 10385398 . 25
1 10385398 10385399 . 25
以这个例子为例,假设我想 select 从 10385391 到 10385397,所需的输出是
1 10385391 10385392 . 22
1 10385392 10385393 . 21
1 10385393 10385394 . 22
1 10385394 10385395 . 25
1 10385395 10385396 . 25
1 10385396 10385397 . 25
奖励:同样重要的是,如果找不到起始位置,请取而代之的是收盘位置。在提供的示例中,这不会发生,因为有一个相关的系列,但万一我得到这样的文件
1 10385389 10385390 . 21
1 10385391 10385392 . 22
1 10385392 10385393 . 21
1 10385393 10385394 . 22
如果用户输入 10385390 而在第二列中找不到,我想避免错误。
awk -v sn="10385390" -v en="10385397" '>=sn && <=en {print;next}{exit}' "file"
sn="10385390"
为起始编号。
en="10385397"
为尾号。
"file"
您的输入文件。
根据需要更改这些变量。
如何从 .txt 文件中获取不同列值之间的行?
我有一个包含很多列的文本文件(如下所示),我需要获取包含在第二列位置和第三列位置之间的行。
1 10385389 10385390 . 21
1 10385390 10385391 . 22
1 10385391 10385392 . 22
1 10385392 10385393 . 21
1 10385393 10385394 . 22
1 10385394 10385395 . 25
1 10385395 10385396 . 25
1 10385396 10385397 . 25
1 10385397 10385398 . 25
1 10385398 10385399 . 25
以这个例子为例,假设我想 select 从 10385391 到 10385397,所需的输出是
1 10385391 10385392 . 22
1 10385392 10385393 . 21
1 10385393 10385394 . 22
1 10385394 10385395 . 25
1 10385395 10385396 . 25
1 10385396 10385397 . 25
奖励:同样重要的是,如果找不到起始位置,请取而代之的是收盘位置。在提供的示例中,这不会发生,因为有一个相关的系列,但万一我得到这样的文件
1 10385389 10385390 . 21
1 10385391 10385392 . 22
1 10385392 10385393 . 21
1 10385393 10385394 . 22
如果用户输入 10385390 而在第二列中找不到,我想避免错误。
awk -v sn="10385390" -v en="10385397" '>=sn && <=en {print;next}{exit}' "file"
sn="10385390"
为起始编号。en="10385397"
为尾号。"file"
您的输入文件。
根据需要更改这些变量。