Hello Experts,
我输入文件中的条目如下所示。
A3YZ.SX.6_A3YZ.SX.7
AB3Y.OMG.1_AB3Y.OMG.2_AB3Y.OMG.3_AB3Y.OMG.4
在上面的示例中,使用下划线将多个规则组合成一行。显然,我的流程要求它们分成多个条目,其中第一列应该是行,第二列应该具有从每一行派生的模式。即
example1::
A3YZ.SX.6_A3YZ.SX.7 A3YZ.SX.6
A3YZ.SX.6_A3YZ.SX.7 A3YZ.SX.7
example2::
AB3Y.OMG.1_AB3Y.OMG.2_AB3Y.OMG.3_AB3Y.OMG.4 AB3Y.OMG.1
AB3Y.OMG.1_AB3Y.OMG.2_AB3Y.OMG.3_AB3Y.OMG.4 AB3Y.OMG.2
AB3Y.OMG.1_AB3Y.OMG.2_AB3Y.OMG.3_AB3Y.OMG.4 AB3Y.OMG.3
AB3Y.OMG.1_AB3Y.OMG.2_AB3Y.OMG.3_AB3Y.OMG.4 AB3Y.OMG.4
有办法吗?
此致 Divesh
答案 0 :(得分:3)
从命令行使用perl
:
$ perl -F'_' -lane 'for my $ele ( @F ) { print "$_ $ele" }' file
A3YZ.SX.6_A3YZ.SX.7 A3YZ.SX.6
A3YZ.SX.6_A3YZ.SX.7 A3YZ.SX.7
AB3Y.OMG.1_AB3Y.OMG.2_AB3Y.OMG.3_AB3Y.OMG.4 AB3Y.OMG.1
AB3Y.OMG.1_AB3Y.OMG.2_AB3Y.OMG.3_AB3Y.OMG.4 AB3Y.OMG.2
AB3Y.OMG.1_AB3Y.OMG.2_AB3Y.OMG.3_AB3Y.OMG.4 AB3Y.OMG.3
AB3Y.OMG.1_AB3Y.OMG.2_AB3Y.OMG.3_AB3Y.OMG.4 AB3Y.OMG.4
<强>开关强>
-F'_'
:将输入字段分隔符设置为_
。-l
:在处理过程中压缩换行符并在打印过程中将其放回原处。 -a
:根据字段分隔符自动分割输入行,并填充数组@F
。-n
:创建一个隐式while(<>) { ... }
循环来处理每一行。 -e
:执行后面的代码块。 <强>代码:强>
我们使用@F
和-F
选项迭代我们创建的数组(-a
)并打印整行以及数组元素。
答案 1 :(得分:0)