2017-07-01 37 views
-2

我的数据看起来如何从Linux中的文件的第二列打印非num?

  ID.NO|CUST 
      1989 | BZXY-P 
      17BY4| 1236 
      18719| 9281 
      ABTY | 49889 
      56QQB| 87 BWE 67 

我想两个文件出这个数据的,

文件从第二山坳&把对应的第一个山坳1-唯一的非数值,

ID.NO | CUST

1989 | BZXY-P

56QQB | 87 BWE 67

文件2 - 只有从第二山坳NUM值,&把对应的第一个山坳

ID.NO | CUST

18719 | 9281

17BY4 | 1236

ABTY | 49889

已经尝试了好几次,没有运气。我并不是真的进入核心linux,但是我想找到一个soln,因为我现在很难找到它。任何建议或帮助对我来说都是绝对的福音。

+0

早些时候,我认为的“grep [AA-ZZ]文件名,是SOLN!后来我意识到,grep会过滤出整个行,如果即使第一个col有非num,这也不符合计划 – joh

回答

1

AWK溶液:

输入文件file

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 

> cat File2.txt 
ID.NO|CUST 
17BY4| 1236 
18719| 9281 
ABTY | 49889 
+0

感谢您的回复!当我尝试这个时,我发现文件1的所有值包括非num和file2 -empty只有头文件 – joh

+0

@joh,请参阅我的答案中的输入文件。否则,您发布了非实际的输入。该解决方案应按预期工作 – RomanPerekhrest

+0

Pl请参阅截图i – joh

相关问题