我需要使用grep -P正则表达式来查找和替换bash脚本中的两列

1 regex bash grep

如果我有一个列表,如:

5       chr1
5       chr1
5       chr2
3   chr5
Run Code Online (Sandbox Code Playgroud)

如何使用grep -P切换第1列和第2列的位置?

如果我使用这一行:

grep -P "(\w+)\t(\w+)" test.txt
Run Code Online (Sandbox Code Playgroud)

为了捕获文本,我将如何替换它?

anu*_*ava 5

在awk中更好(更容易)做到这一点:

awk '{a=$1; $1=$2; $2=a}1' OFS='\t' file
chr1    5
chr1    5
chr2    5
chr5    3
Run Code Online (Sandbox Code Playgroud)

更简单的是:(感谢@BrenoZan)

awk '{print $2"\t"$1}' file
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢更简单的方法:_awk'{print $ 2"\ t"$ 1}'file_ (5认同)