Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash使用sed解析文件_Bash_Sed - Fatal编程技术网

Bash使用sed解析文件

Bash使用sed解析文件,bash,sed,Bash,Sed,我有一个文件,我想用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_200

我有一个文件,我想用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
逗号后的数字对应于行数。 你知道我怎么做吗? 谢谢你的帮助

史蒂夫

与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,逗号分隔。

带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
sed 's/^.*"."\([^"]*\)"[[:blank:]]\{1,\}\([^[:blank:]]\{1,\}[[:blank:]]\{1,\}\)\{2\}\([0-9]\{1,\}[[:blank:]].*/\1,\3/' YourFile
编辑:如果在没有第二部分的情况下运行,则输出如下所示:

"SCHEMA1"."IJK_ECX_LEDGER_HST_2009"25391
为了达到您想要的输出,我们必须再次使用第二个awk部件进行拆分
-F\“
表示在
处拆分,仅打印值4和5,逗号分隔。

带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
sed 's/^.*"."\([^"]*\)"[[:blank:]]\{1,\}\([^[:blank:]]\{1,\}[[:blank:]]\{1,\}\)\{2\}\([0-9]\{1,\}[[:blank:]].*/\1,\3/' YourFile
编辑:如果在没有第二部分的情况下运行,则输出如下所示:

"SCHEMA1"."IJK_ECX_LEDGER_HST_2009"25391
为了达到您想要的输出,我们必须再次使用第二个awk部件进行拆分
-F\“
表示在
处拆分,仅打印值4和5,逗号分隔。

带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
sed 's/^.*"."\([^"]*\)"[[:blank:]]\{1,\}\([^[:blank:]]\{1,\}[[:blank:]]\{1,\}\)\{2\}\([0-9]\{1,\}[[:blank:]].*/\1,\3/' YourFile
编辑:如果在没有第二部分的情况下运行,则输出如下所示:

"SCHEMA1"."IJK_ECX_LEDGER_HST_2009"25391
为了达到您想要的输出,我们必须再次使用第二个awk部件进行拆分
-F \“
表示在
处拆分,只打印值4和5,逗号分隔

sed 's/^.*"."\([^"]*\)"[[:blank:]]\{1,\}\([^[:blank:]]\{1,\}[[:blank:]]\{1,\}\)\{2\}\([0-9]\{1,\}[[:blank:]].*/\1,\3/' YourFile
关于GNU-sed-add-posix

关于GNU-sed-add-posix

关于GNU-sed-add-posix


> GNED AddioPosix

<代码>但经过多次尝试,我没有成功——考虑发布您的尝试。我发现这是可行的,但是还有别的方法吗?cat test.txt | grep“.导出”| sed's/。导出“[AZ] *”。“//g”s/s行//g′s/s“[^ ^ ] *//g′<代码> >但经过多次尝试,我没有成功< /COD>——考虑张贴您的尝试。我发现这是可行的,但是有另一种方式吗?CAT Test.txt>GRIP…导出的“Sys/s……导出[AZ] *”//g′s/s行//g′s/s“[^ ^ ] *//g′<代码> >但经过多次尝试,我没有成功< /COD>——考虑张贴您的尝试。我发现这是可行的,但是还有别的方法吗?cat test.txt | grep“.导出”| sed's/。导出“[AZ] *”。“//g”s/s行//g′s/s“[^ ^ ] *//g′<代码> >但经过多次尝试,我没有成功< /COD>——考虑张贴您的尝试。我发现这是可行的,但是有另一种方式吗?CAT Test.txt>GRIP…导出“| sed's/。导出“[A-Z]*”//g'| sed's/rows//g'| sed's/”[^”]*/,/g'谢谢,这正是我想要的!但我不知道这部分(awk-F \“{printf”%s,%s\n“,$4,$5}”)是如何工作的,你能给我解释一下吗?谢谢你,这正是我想要的!但我不知道这部分(awk-F \“{printf”%s,%s\n“,$4,$5}”)是如何工作的,你能给我解释一下吗?谢谢你,这正是我想要的!但是我不知道这部分(awk-F \“{printf”%s,%s\n“,$4,$5}”)是如何工作的,你能给我解释一下吗?谢谢你,这正是我想要的!但是我不知道这部分(awk-F \“{printf”%s,%s\n“,$4,$5}”)是如何工作的,你能给我解释一下吗?