首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在unix (osx)中搜索/替换一堆文本文件

如何在unix (osx)中搜索/替换一堆文本文件
EN

Stack Overflow用户
提问于 2011-06-27 04:34:49
回答 3查看 825关注 0票数 4

我有一个正则表达式,我在http://regexpal.com/上测试成功了:

代码语言:javascript
运行
复制
^(\".+?\"),\d.+?,"X",-99,-99,-99,-99,-99,-99,-99,(\d*),(\d*)

我的测试数据如下所示:

代码语言:javascript
运行
复制
"AB101AA",10,"X",-99,-99,-99,-99,-99,-99,-99,394251,806376,179,"S00","SN9","00","QA","MH","X"
"AB101AF",10,"X",-99,-99,-99,-99,-99,-99,-99,394181,806429,179,"S00","SN9","00","QA","MH","X"
"AB101AG",10,"X",-99,-99,-99,-99,-99,-99,-99,394251,806376,179,"S00","SN9","00","QA","MH","X"
"AB101AH",10,"X",-99,-99,-99,-99,-99,-99,-99,394371,806359,179,"S00","SN9","00","QA","MH","X"
"AB101AJ",10,"X",-99,-99,-99,-99,-99,-99,-99,394171,806398,179,"S00","SN9","00","QA","MH","X"
"AB101AL",10,"X",-99,-99,-99,-99,-99,-99,-99,394331,806530,179,"S00","SN9","00","QA","MH","X"

我想在每一行上用\1,\2,\3替换它,例如,第1行将给出

代码语言:javascript
运行
复制
"AB101AA",394251,806376

如何对osx中我的文件夹中的所有csv文件运行regex搜索和替换?我尝试使用sed,但它出现了语法错误(而且我不确定它是否支持这个正则表达式?)。另外,^(行首)和$(行尾)锚点是否逐行工作,或者它们是否匹配文件的开头和结尾?

更新:一些很好的响应使用cut,awk ect,它们从csv中获取特定字段,但我最近了解到我需要从该列表中提取数字并将它们切成两个子值,因此上面的示例输出需要如下所示:

代码语言:javascript
运行
复制
"AB101AA",3,94251,8,06376

据我所知,我需要使用正则表达式。

EN

Stack Overflow用户

发布于 2011-06-27 04:43:56

您想提取字段1、11和12吗?对于这样的任务,awkcut真的很棒!例如。

代码语言:javascript
运行
复制
awk -F, '{print $1, $11, $12}' input

使用cut

代码语言:javascript
运行
复制
cut -d, -f1,11,12 input 

使用perl-a打开自动拆分模式- perl会自动将空格上的输入行拆分到@F数组中。-F与-a一起使用,以选择要在其上拆分行的分隔符。

代码语言:javascript
运行
复制
perl -F, -lane 'printf "%s, %d, %d\n", $F[0], $F[10], $F[11]' input 

...and最后,一个纯bash解决方案

代码语言:javascript
运行
复制
#!/bin/bash
IFS=,
while read -ra ARRAY;
do
    echo ${ARRAY[0]}, ${ARRAY[10]}, ${ARRAY[11]}
done < input
票数 5
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6486574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档