用不同的分隔符连接不同的字段

Jun*_*eng 2 text-processing paste

我有一个这样的制表符分隔文件:

chr1    53736473        54175786
chr1    56861276        56876438
chr1    57512145        57512200
Run Code Online (Sandbox Code Playgroud)

我想像这样连接三个字段结果:

chr1:53736473-54175786
chr1:56861276-56876438
chr1:57512145-57512200
Run Code Online (Sandbox Code Playgroud)

我试过paste -d ':-' file,这显然不起作用。有人可以帮忙吗?

理想情况下可以使用简单的 unix 命令,我知道使用高级语言很容易。

Jos*_* R. 5

对于你的例子,

awk '{print $1":"$2"-"$3}' your_file
Run Code Online (Sandbox Code Playgroud)

会起作用,但它假设您始终只有 3 个字段。


jim*_*mij 5

使用 sed:

$ sed 's/\(.*\)\t\(.*\)\t/\1:\2-/' file

chr1:53736473-54175786
chr1:56861276-56876438
chr1:57512145-57512200
Run Code Online (Sandbox Code Playgroud)

打印输出:

printf "%s:%s-%s\n" $(< file)

chr1:53736473-54175786
chr1:56861276-56876438
chr1:57512145-57512200
Run Code Online (Sandbox Code Playgroud)