2013-07-22 14 views
-4

設A,B,C,d,E另一個字替換的單詞,F是的話正則表達式與在不同行的unix

輸入文件

A "\t" B 

C "\t" D 

E "\t" F 

等。 。

輸出文件:

B "\t" C 

D "\t" E 

F "\t" etc... 

將單詞B替換爲同一行中的單詞B,並將單詞B替換爲下一行中的單詞C. 像其他線路一樣明智。

任何sed/awk/perl oneliner來完成這個任務嗎?與awk沒有正則表達式

+0

的方式你怎麼對待更換F? G?一個? – mob

回答

1

方式一:

awk ' 
BEGIN { FS=OFS="\t" } 
NR==1 { last=$NF; next } 
     { last=last FS $1; print last; last=$NF} 
END { print $NF }' file 
0

下面是使用bash

$ cat f 
A B 
C D 
E F 

$ words=($(<f)) 

$ unset 'words[0]' 

$ printf "%s\t%s\n" "${words[@]}" 
B C 
D E 
F