我的栏目如下所示:

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/

10-13 05:14