让 A,B,C,D,E,F 是单词
输入文件
A "\t" B
C "\t" D
E "\t" F
ETC...
输出文件:
B "\t" C
D "\t" E
F "\t" etc...
在同一行将单词 A 替换为单词 B,并将下一行中的单词 B 替换为单词 C。就像其他行一样明智。
有任何 sed/awk/perl oneliner 来实现这一点吗?
一种awk
没有正则表达式的方法:
awk '
BEGIN { FS=OFS="\t" }
NR==1 { last=$NF; next }
{ last=last FS $1; print last; last=$NF}
END { print $NF }' file
这是 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