我的文件值为$ 4,如下所示:
Deaf, a 603622 (3), Auto dom; 153650 (3), Autosomal dominant; Fechtner (4)
cancer, somatic, 114500 (2); Rubinstein-Taybi syndrome 2, 613684 (3)
$ 4有多个分隔符:空格,逗号,分号
我需要通过匹配正则表达式(2)或(3)或(4)来提取行。例如,我尝试使用awk命令匹配和grep行($ 2)使用awk命令:
awk -F "\t" '{if ($4 ~ "(2)") print $0;}'
和
awk -F "\t" '{if ($4 ~ "2") print $0;}'
这2个解决方案可以使用2或'('或')'
和
awk -F "\t" '{if ($4 = "(2)") print $0;}'
打印(2)$ 4
任何使其有效的建议都会有所帮助。
答案 0 :(得分:0)
你的问题不明确,有很多假设,这是一个可能的解决方案。我不确定这是不是你要求的。
#If no integer mentioned inside (),
cat sample
Deaf, a 603622 (s), Auto dom; 153650 (s), Autosomal dominant; Fechtner (a) cancer, somatic, 114500 (a); Rubinstein-Taybi syndrome 2, 613684 (a)"
#Then following command will give nothing
cat sample|awk '/\([0-9]\)/ { print }'
当()内有一些数字时,:
cat sample
Deaf, a 603622 (s), Auto dom; 153650 (s), Autosomal dominant; Fechtner (a) cancer, somatic, 114500 (a); Rubinstein-Taybi syndrome 2, 613684 (2)"
cat sample|awk '/\([0-9]\)/ { print }'
Deaf, a 603622 (s), Auto dom; 153650 (s), Autosomal dominant; Fechtner (a) cancer, somatic, 114500 (2); Rubinstein-Taybi syndrome 2, 613684 (a)"