我有file1:
MSTRG.10807.1 0.494311896511595 MID 0.423993026403461 2.39379412548345 1.99703339651136
MSTRG.10884.1 0.365770947942799 EARLY 1.46416917664929 1.16816186543633 0.689075392478972
MSTRG.10958.1 0.52855355823638 MID 0.885493751836316 2.28463841550375 1.26867555157512
Run Code Online (Sandbox Code Playgroud)
我使用了命令sed 's/ /,/g' file1 > file2,这产生了file2:
MSTRG.10807.1,,,0.494311896511595,,,MID,,,,0.423993026403461,,2.39379412548345,,,1.99703339651136
MSTRG.10884.1,,,0.365770947942799,,,EARLY,,1.46416917664929,,,1.16816186543633,,,0.689075392478972
MSTRG.10958.1,,,0.52855355823638,,,,MID,,,,0.885493751836316,,2.28463841550375,,,1.26867555157512
Run Code Online (Sandbox Code Playgroud)
但我想要一个制表符分隔的文件。
使用tr:
tr -s ' ' '\t' < file1 > file2
Run Code Online (Sandbox Code Playgroud)
-s, --squeeze-repeas
用该字符的单次出现替换在最后指定的 SET 中列出的重复字符的每个序列
如果您需要制表符,请\t用作替换模式而不是,.
如果您只想用一个制表符(或逗号)替换多个空格,请\+在空格后添加:
sed 's/ \+/\t/g' file1 > file2
Run Code Online (Sandbox Code Playgroud)