我有一个文件,我想用sed解析,但经过多次尝试后,我没有成功。 这是源文件:
. . exported "SCHEMA1"."IJK_ECX_LEDGER_HST_2009" 806.6 KB 25391 rows
. . exported "SCHEMA1"."IJK_ECX_JGEN_ACCT_ENTRY_HST_2009" 1.000 MB 25591 rows
. . exported "SCHEMA2"."IJK_ECX_JRNL_LN_HST_2009" 1.156 MB 25596 rows
. . exported "SCHEMA2"."IJK_ECX_OPEN_ITEM_GL_HST_2009" 663.4 KB 15062 rows
. . exported "SCHEMA1"."IJK_ECX_XLATITEM_HST_2009" 932.9 KB 42277 rows
. . exported "SCHEMA1"."IJK_ECX_JRNL_HEADER_HST_2009" 9.585 KB 4 rows
. . exported "SCHEMA5"."IJK_ECX_CA_JGEN_CHQ_HST_2009" 0 KB 0 rows
. . exported "SCHEMA1"."IJK_ECX_CA_JRNL_LN_HST_2009" 0 KB 0 rows
. . exported "SCHEMA5"."IJK_ECX_DISTRIB_LINE_HST_2009" 0 KB 0 rows
. . exported "SCHEMA1"."IJK_ECX_GP_ACC_LINE_HST_2009" 0 KB 0 rows
. . exported "SCHEMA5"."IJK_ECX_IN018_JRNL_H_HST_2009" 0 KB 0 rows
. . exported "SCHEMA1"."IJK_ECX_IN094_A_SUIV_HST_2009" 0 KB 0 rows
. . exported "SCHEMA5"."IJK_ECX_IN094_B_SUIV_HST_2009" 0 KB 0 rows
. . exported "SCHEMA5"."IJK_ECX_IN094_LN_AUD_HST_2009" 0 KB 0 rows
. . exported "SCHEMA0"."IJK_ECX_JGEN_ACT_HST_2009" 0 KB 0 rows
. . exported "SCHEMA1"."IJK_ECX_JGEN_CASH_HST_2009" 0 KB 0 rows
这就是我想要的:
IJK_ECX_LEDGER_HST_2009,25391
IJK_ECX_JGEN_ACCT_ENTRY_HST_2009,25591
IJK_ECX_JRNL_LN_HST_2009,25596
IJK_ECX_OPEN_ITEM_GL_HST_2009,15062
IJK_ECX_XLATITEM_HST_2009,42277
IJK_ECX_CA_JGEN_CHQ_HST_2009, 0
IJK_ECX_CA_JRNL_LN_HST_2009,0
IJK_ECX_DISTRIB_LINE_HST_2009,0
IJK_ECX_GP_ACC_LINE_HST_2009,0
IJK_ECX_IN018_JRNL_H_HST_2009,0
IJK_ECX_IN094_A_SUIV_HST_2009,0
IJK_ECX_IN094_B_SUIV_HST_2009,0
IJK_ECX_IN094_LN_AUD_HST_2009,0
IJK_ECX_JGEN_ACT_HST_2009,0
IJK_ECX_JGEN_CASH_HST_2009,0
逗号后面的数字对应于行数。 你知道我怎么能这样做吗? 谢谢你的帮助,
史蒂夫
答案 0 :(得分:3)
使用awk:
awk '{printf "%s%s\n", $4, $7}' file | awk -F\" '{printf "%s,%s\n", $4,$5}'
IJK_ECX_LEDGER_HST_2009,25391
IJK_ECX_JGEN_ACCT_ENTRY_HST_2009,25591
IJK_ECX_JRNL_LN_HST_2009,25596
IJK_ECX_OPEN_ITEM_GL_HST_2009,15062
IJK_ECX_XLATITEM_HST_2009,42277
IJK_ECX_JRNL_HEADER_HST_2009,4
IJK_ECX_CA_JGEN_CHQ_HST_2009,0
IJK_ECX_CA_JRNL_LN_HST_2009,0
IJK_ECX_DISTRIB_LINE_HST_2009,0
IJK_ECX_GP_ACC_LINE_HST_2009,0
IJK_ECX_IN018_JRNL_H_HST_2009,0
IJK_ECX_IN094_A_SUIV_HST_2009,0
IJK_ECX_IN094_B_SUIV_HST_2009,0
IJK_ECX_IN094_LN_AUD_HST_2009,0
IJK_ECX_JGEN_ACT_HST_2009,0
IJK_ECX_JGEN_CASH_HST_2009,0
编辑:如果在没有第二部分的情况下运行它,输出将如下所示:
"SCHEMA1"."IJK_ECX_LEDGER_HST_2009"25391
要达到您想要的输出,我们必须再次使用第二个awk部分进行拆分。 -F\"
表示在"
分割,仅打印值4和5,逗号分隔。
答案 1 :(得分:0)
sed 's/^.*"."\([^"]*\)"[[:blank:]]\{1,\}\([^[:blank:]]\{1,\}[[:blank:]]\{1,\}\)\{2\}\([0-9]\{1,\}[[:blank:]].*/\1,\3/' YourFile
在GNU sed add -posix
上