如何仅使用grep命令提取CSV文件中的Population列
解决方案
你可以使用带有\K重置标记的grep命令来实现需求,完全不需要awk或sed这类工具:
grep -Eo '^(?:[^,]*,){2}\K[^,]*' information.csv
命令细节解释:
-E:启用扩展正则表达式语法,支持更灵活的分组和重复匹配规则-o:只输出匹配到的文本片段,而非整行内容^(?:[^,]*,){2}:^:锚定到行的开头位置(?:...):非捕获分组,用来重复匹配前两个逗号分隔的字段,这部分内容不会被-o输出[^,]*:匹配任意数量的非逗号字符,对应单个字段的内容,:匹配字段末尾的分隔逗号{2}:重复执行这个分组两次,正好跳过前两列(id和Association)
\K:重置匹配的起始点,告诉grep丢弃之前匹配到的所有内容,只保留后续匹配的部分[^,]*:精准匹配第三列(Population)的全部内容,直到遇到下一个逗号为止
运行这个命令后,会得到你想要的输出:
Dutch Dutch Finnish Finnish Finnish French
内容的提问来源于stack exchange,提问作者ilya jung
相关产品推荐
相关产品推荐

