设A,B,C,D,E,F为单词
输入文件
A "\t" B
C "\t" D
E "\t" F
等...
输出文件:
B "\t" C
D "\t" E
F "\t" etc...
将单词A替换为单词B,将其替换为同一行,并将单词B替换为下一行中的单词C. 对于其他线路也是明智的。
任何sed / awk / perl oneliner都能实现这个目标吗?
答案 0 :(得分:1)
awk
没有正则表达式的一种方式:
awk '
BEGIN { FS=OFS="\t" }
NR==1 { last=$NF; next }
{ last=last FS $1; print last; last=$NF}
END { print $NF }' file
答案 1 :(得分: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