我在我的Perl脚本中使用这个sed一行命令。然而,是否有一种方式(我确定有)可以在Perl中完成同样的工作?
这是我的文件:
$ cat all_log1.txt
Looking into the table etl_f_gl_balance
# of -1 values in etl_f_gl_balance.row_key:
0
# of -1 values in etl_f_gl_balance.ledger_key:
1020
# of -1 values in etl_f_gl_balance.gl_account_key:
1020
# of -1 values in etl_f_gl_balance.legal_entity_key:
1020
# of -1 values in etl_f_gl_balance.cost_center_key:
995
# of -1 values in etl_f_gl_balance.natural_account_key:
1020
# of -1 values in etl_f_gl_balance.posting_period_fiscal_key:
5
# of -1 values in etl_f_gl_balance.posting_period_key:
5
以下是我的
sed
解决方案,期望输出如下:$ sed ':a; N; $!ba; s/:\n/: /g' all_log1.txt
Looking into the table etl_f_gl_balance
# of -1 values in etl_f_gl_balance.row_key: 0
# of -1 values in etl_f_gl_balance.ledger_key: 1020
# of -1 values in etl_f_gl_balance.gl_account_key: 1020
# of -1 values in etl_f_gl_balance.legal_entity_key: 1020
# of -1 values in etl_f_gl_balance.cost_center_key: 995
# of -1 values in etl_f_gl_balance.natural_account_key: 1020
# of -1 values in etl_f_gl_balance.posting_period_fiscal_key: 5
# of -1 values in etl_f_gl_balance.posting_period_key: 5
目前,我无论使用哪种组合的正则表达式都无法在 Perl 中完成它。因此,在我的 Perl 脚本中,我最终调用了这个 sed
命令。
我不是在寻找 Perl 脚本,而是一行命令。
谢谢。
perl -pe's/:\n/: /'
没有起作用吗? - amons2p ':a; N; $!ba; s/:\n/: /g'
很有趣:s2p
- sed转perl翻译器 - glenn jackmansed
命令可以简化为'1 ! {N; s/:\n/: /g}'
或'/^#/ {N; s/:\n/: /g}'
。 - Darren Bishop