【发布时间】:2015-10-20 13:32:21
【问题描述】:
我需要提取一个包含在我的 csv 列中的字符串。
我的文件是这样的:
col1;col2;col3;cleavage=10-11;
col1;col2;col3;cleavage=1-2;
col1;col2;col3;cleavage=100-101;
col1;col2;col3;none;
所以,我的文件的分隔符是“;”但在第 4 列中,我想提取“cleavage=”和“-”之间的字符串。我所做的是在“cleavage =”之后打印 2 个字符,但并不总是 2 个字符。
我是这样做的:
awk -F "\"*;\"*" '{if (match($4,"cleavage=")) print $1";"$2";"$3";"substr($4,RSTART+9,2); else print $1";"$2";"$3";0"}' file
我发现下面的命令应该是正确的,但是我应该如何将它集成到前面的命令中呢?
awk "/Pattern1/,/Pattern2/ { print }" inputFile
感谢您的帮助! :)
编辑: 我的实际输出是
col1;col2;col3;10;
col1;col2;col3;1-;
col1;col2;col3;10;
col1;col2;col3;0;
但我想要的是:
col1;col2;col3;10;
col1;col2;col3;1;
col1;col2;col3;100;
col1;col2;col3;0;
【问题讨论】:
-
你的预期输出是什么?
-
字段分隔符中的转义引号是干什么用的?