【发布时间】:2018-11-13 13:36:35
【问题描述】:
我想在未格式化的输入下进行格式化。如果第二列以“2”开头,我想打印所有字段。
实际文件包含许多列。有没有最简单的方法来打印所有列而不是输入 print $2,$3,$4,$5,...$n?
输入.csv
---------------------------
|Data statistics|Number of|
|-------------------------|
|Records passed | 750,517|
---------------------------
Transaction Data for Serial Numbers
No of Records : 750517
-----------------------------------------------------------------------------------------------------------
|Material Number|Serial Number From |Serial Number To |Document Year|Delivery Document|Material Document|
|----------------------------------------------------------------------------------------------------------
|200965 |18604165309338 |18604165309387 |2012 |6100202749 |AAA2778202 |
|201163 |10740000822407 |10740000822606 |2012 |6100202749 |AAA2778202 |
|201232 |18604177741067 |18604177741366 |2012 |6100202749 |AAA2778202 |
|201295 |18604221522337 |18604221523836 |2012 |6100202749 |AAA2778202 |
|201480 |18604113309952 |18604113310131 |2012 |6100202749 |AAA2778202 |
|201781 |18604199150436 |18604199150835 |2012 |6100202749 |AAA2778202 |
|201480 |6001400030046472 |6001400030046771 |2012 |6100202520 |AAA2777953 |
|202853 |6001700000180323 |6001700000180722 |2012 |6100202520 |AAA2777953 |
-----------------------------------------------------------------------------------------------------------
我正在取消以下命令:
awk ' BEGIN {FS ="|"; OFS = ","} { if ($2~"2") print $2,$3,$4,$5,$6,$7 }' Input.txt
期望的输出:
200965 ,18604165309338 ,18604165309387 ,2012 ,6100202749 ,AAA2778202
201163 ,10740000822407 ,10740000822606 ,2012 ,6100202749 ,AAA2778202
201232 ,18604177741067 ,18604177741366 ,2012 ,6100202749 ,AAA2778202
201295 ,18604221522337 ,18604221523836 ,2012 ,6100202749 ,AAA2778202
201480 ,18604113309952 ,18604113310131 ,2012 ,6100202749 ,AAA2778202
201781 ,18604199150436 ,18604199150835 ,2012 ,6100202749 ,AAA2778202
201480 ,6001400030046472 ,6001400030046771 ,2012 ,6100202520 ,AAA2777953
202853 ,6001700000180323 ,6001700000180722 ,2012 ,6100202520 ,AAA2777953
【问题讨论】:
标签: awk pattern-matching