我有一个基于配置文件生成的文本文件。 配置文件将包含我要生成的字段。 如下所示,
1)Configuration.txt 帐户,名称,serial_no
2)generated_file.txt
414d51204d5150525447575648415050529a6af298c,ß,200296125220140707123915 ,+0763
414d51204d5150525447575648415050529a6af2996,º,200303740520140707174224 ,+0657
414d51204d5150525447575648415050529a6af298b,|,200349107120140707120811 ,+0422
414d51204d5150525447575648415050529a6af298d,é,200510041820140707130954 ,+0664
因此在generated_file.txt中,帐号始终会有一些像这样的垃圾值
414d51204d5150525447575648415050529a6af298c,ß, - 一个单独的字段(例如,%,,¥,)。 所以我需要的是像字段2和字段3省略字段1有垃圾值。
Desired Output
200296125220140707123915 ,+0763
200303740520140707174224 ,+0657
我可以通过此命令获取该值。
但是如果配置文件中的字段数改变如下。我有 在脚本中更改查询,如下所示。我想手动做。
config.txt
account,name,serial_no,marks
我需要的是一个通用命令,它将占用config.txt中的多个字段 并取消所有字段省略field1(具有垃圾值的帐户)。
由于
答案 0 :(得分:0)
如果要打印第3列和第4列:
cut -d, -f3,4 generated_file.txt
答案 1 :(得分:0)
您可以使用awk脚本:awk -F , '{ for(col=3;col<=NF;col++){printf $col ","} print ""}'
例:
Vikram:PROGS admin$ cat b.txt
414d51204d5150525447575648415050529a6af298c,ß,200296125220140707123915 ,+0763, joy, HR
414d51204d5150525447575648415050529a6af2996,º,200303740520140707174224 ,+0657, bob
414d51204d5150525447575648415050529a6af298b,|,200349107120140707120811 ,+0422
414d51204d5150525447575648415050529a6af298d,é,200510041820140707130954 ,+0664
Vikram:PROGS admin$ cat b.txt | awk -F , '{ for(col=3;col<=NF;col++){printf $col ","} print ""}'
200296125220140707123915 ,+0763, joy, HR,
200303740520140707174224 ,+0657, bob,
200349107120140707120811 ,+0422,
200510041820140707130954 ,+0664,