我的栏目如下所示:
col1 col2 col3 col4 a/t t/g g/t f/g
col3 col2 col4 col5 t/a g/t f/g g/t
我将需要翻转4之后的列中的值,并且示例输出如下所示:
col1 col2 col3 col4 t/a g/t t/g g/f
col3 col2 col4 col5 a/t t/g g/f t/g
我尝试在bash中使用-rev选项,但它以相反的方向打印整个行(镜像)。是否有另一种解决方案,仅用于翻转字符串,如输出所示?提前致谢。
最佳答案
您没有说前4列可能包含的内容,所以我认为这足够了
sed 's/\(\w\)\/\(\w\)/\2\/\1/g' <yourfile>
喜欢:
$ cat test
col1 col2 col3 col4 t/a g/t t/g g/f
col3 col2 col4 col5 a/t t/g g/f t/g
$ sed 's/\(\w\)\/\(\w\)/\2\/\1/g' test
col1 col2 col3 col4 a/t t/g g/t f/g
col3 col2 col4 col5 t/a g/t f/g g/t
如果要将结果保存到文件,请重定向sed输出:
$ sed 's/\(\w\)\/\(\w\)/\2\/\1/g' test > newfile
关于linux - 如何在特定列中使用Linux翻转字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28889376/