我所預期的那樣,輸出象下面這樣:獲得3串之前並用awk
[前字符h爲空,以「#分配。‘字符^ h 後的’e 」, 「升」, 「升」。]
[前字符e爲 「H」。字符e爲 後的 「L」, 「L」, 「O」。]
[前字符升是「h」和「e」。字符l 是「l」和「o」。]
[在字符l之前是「h」和「e」。在字符 之後是「l」和「o」。]
[在字符l之前是「h」,「e」,「l」。 後的字符l是「o」。]
[在字符o之前是「e」,「l」,「l」。之後 字符o是空,並指定以「#」]
# # # h e l l
# # h e l l o
# h e l l o #
h e l l o # #
e l l o # # #
# # # w o n d
# # w o n d e
# w o n d e r
w o n d e r f
o n d e r f u
n d e r f u l
d e r f u l #
e r f u l # #
r f u l # # #
輸入文件:
h e l l o
w o n d e r f u l
代碼:
awk -v s1="# # #"
'BEGIN{v=length(s1)}
{$0=s1 $0 s1;num=split($0, A,"");
for(i=v+1;i<=num-v;i++){
q=i-v;p=i+v;
while(q<=p){
Q=Q?Q OFS A[q]:A[q];q++
};
print Q;Q=""
}
}' InputFile
但我得到的結果是:
# # # h e l
# # h e l l
# # h e l l
# h e l l o
# h e l l o #
h e l l o #
e l l o # #
e l l o # #
l l o # # #
# # # w o n
# # w o n d
# # w o n d
# w o n d e
# w o n d e
w o n d e r
o n d e r
o n d e r f
n d e r f
n d e r f u
d e r f u
d e r f u l
e r f u l #
e r f u l #
r f u l # #
r f u l # #
f u l # # #
如何解決?請指導我。由於
我確實略勝一籌通過OFS設置爲「」。 – Yaron