在awk中我可以写: awk -F: 'BEGIN {OFS = FS} ...'
在Perl中,相当于FS什么?我想写
perl -F: -lane 'BEGIN {$, = [what?]} ...'
Run Code Online (Sandbox Code Playgroud)
用一个例子更新:
echo a:b:c:d | awk -F: 'BEGIN {OFS = FS} {$2 = 42; print}'
echo a:b:c:d | perl -F: -ane 'BEGIN {$, = ":"} $F[1] = 42; print @F'
Run Code Online (Sandbox Code Playgroud)
两个输出 a:42:c:d
我宁愿不在:Perl BEGIN块中进行硬编码,也可以参考-F选项保存其参数的位置.
总而言之,我所寻找的东西并不存在:
-F,更重要的是请注意,在awk中也是如此:FS是一个字符串,但作为正则表达式:
echo a:b,c:d | awk -F'[:,]' 'BEGIN {OFS=FS} {$2=42; print}'
Run Code Online (Sandbox Code Playgroud)
输出" a[:,]42[:,]c[:,]d"
感谢您的洞察力和解决方法.