Sed 如何在linux中只打印文件第二列的非num?
我的数据看起来Sed 如何在linux中只打印文件第二列的非num?,sed,Sed,我的数据看起来 ID.NO|CUST 1989 | BZXY-P 17BY4| 1236 18719| 9281 ABTY | 49889 56QQB| 87 BWE 67 我要从这些数据中提取两个文件 文件1-仅来自第二列和对应第一列的非数值 身份证号码| CUST 1989年| BZXY-p 56QQB | 87 BWE 67 文件2-仅第2列的num值,以及相应的
ID.NO|CUST
1989 | BZXY-P
17BY4| 1236
18719| 9281
ABTY | 49889
56QQB| 87 BWE 67
我要从这些数据中提取两个文件
文件1-仅来自第二列和对应第一列的非数值
身份证号码| CUST
1989年| BZXY-p
56QQB | 87 BWE 67
文件2-仅第2列的num值,以及相应的第1列
身份证号码| CUST
18719 | 9281
17BY4 | 1236
阿布蒂| 49889
已经试了好几次了,运气不好。我对核心linux不是很感兴趣,但我想为它找到一个解决方案,因为我现在觉得很难。此时,任何建议或帮助对我来说都绝对是一件好事。awk解决方案:
输入文件文件:
ID.NO|CUST
1989 | BZXY-P
17BY4| 1236
18719| 9281
ABTY | 49889
56QQB| 87 BWE 67
命令:
awk -F' *\\| *' 'BEGIN{ f1="File1.txt"; f2="File2.txt" }
NR==1{ print > f1; print > f2; next}
{ print > (($2~/^[0-9]+$/)? f2:f1) }' file
结果:
> cat File1.txt
ID.NO|CUST
1989 | BZXY-P
56QQB| 87 BWE 67
早些时候我想“grep[Aa Zz]文件名,是soln!后来我意识到,grep将过滤掉整行,即使第1列也有非num,这不符合planThanks的回复!当我尝试此操作时,我发现文件1包含所有值,包括非num和file2-仅为空headers@joh,请参阅我答案中的输入文件。否则,您已发布非实际输入。解决方案应按预期工作。请参见屏幕截图i@joh,停止编辑我的文章。如果你想发布一些链接-通过评论发布。此外,你有head-7 565.txt
-这与整个文件不同contents@EdMorton,是的,忘记了那一刻
> cat File2.txt
ID.NO|CUST
17BY4| 1236
18719| 9281
ABTY | 49889