列替换

列替换

列替换
输入:
a|b|c|d|e|f|g|h
请问怎么能变为 a|b|c|g|e|f|d|h?
能说的详细点?不是很明白.
能说的详细点?不是很明白你的问题。
你是不是这个意思?
#!c:/perl/bin/perl.exe
@array=qw(a b c d e f g h);
$var=$array[3];
$array[3]=$array[6];
$array[6]=$var;
$"='|';
print "@array";




   

[quote]回复给 shucho : 能说的详细点?不是很明白....[/quote]
就是第4列与第7列互换,alexru 的回答可以满足要求,谢谢
还想问一下能不能通过单行命令直接实现
perl -le ' print qw(a b .
perl -le ' print qw(a b c d e f g h)[0,1,2,6,4,5,3,7]'
[quote]$str = 'a|b|c|d|e.
[quote]$str = 'a|b|c|d|e|f|g|h';
[color=red]@array = split(/\|/,$str) and @array[3,6] = @array[6,3];[/color][/quote]
这个时候你print 一下数组 @array 应该结果就是你想要的了




   

谢谢各位,总结了一下用下.
谢谢各位,总结了一下用下面命令可以实现了
perl -F'\|' -alne '@F[3,6]=@F[6,3];print join("|",@F)' array

array内容:
a|b|c|d|e|f|g|h