我有多个制表符分隔的文件,这些文件具有相同的列标题。但是,标题(文件的第一行)由空格而不是制表符分隔。如何将空格转换为制表符分隔文件第一行的制表符?
答案 0 :(得分:1)
您只能将sed
用于一行:
sed -i.bak $'1s/ /\t/g' file.csv
答案 1 :(得分:0)
听起来你可以使用awk:
awk -v OFS='\t' 'NR == 1 { $1 = $1 } 1' file
将第一行$1
的第一个字段分配给自身会导致awk重新格式化该行,插入输出字段分隔符OFS
(定义为制表符)。 1
是最短的 true 条件,因此awk默认为每行{ print }
。
要覆盖“就地”,请使用临时文件:
awk -v OFS='\t' 'NR == 1 { $1 = $1 } 1' file > tmp && mv tmp file
请注意,这会将任意数量的空格解释为单个字段分隔符。