我有很多制表符分隔的数据,这意味着当我导入时,我会得到很多列(对于 Google Drive 和 OpenOffice 来说太多了)。
我想我需要做的是找到并替换所有带有换行符的制表符(可能是错误的)。
*编辑 - 我最终用另一种方法解决了这个问题。感谢大家的帮助。:)
答案1
在 OS X 上,您必须使用$''
插入\t
或\n
转义来\n
替换模式。
echo $'1\t2\n3\t4' | sed $'s/\t/\\\n/g'
但是换行符不是已经在 TSV 文件中分隔了行吗?您也可以使用 TextEdit 将制表符替换为其他字符(例如分号)。
答案2
您可以尝试使用正则表达式:
sed 's/\t/\n/' input.txt > output.txt
这将\t
用换行符替换制表符\n
。
答案3
为了扩展 root 的响应,您实际上可能需要在末尾添加 /g 来执行所有操作。
您还可以将其写入带有自动备份标志的同一个文件。
sed -i.orig 's/\t/\n/g' file.txt
结尾的 /g 将导致它命中每个偶然事件而不是每行第一个事件(如果您需要的话)。
-i.orig 在备份原始文件(本例中为 file.txt.orig)后将更改写入同一文件。这只是我个人的偏好问题,而不是必须重命名原始文件并用新文件代替它。
更新
我附加了一个屏幕截图来显示它为我工作...您确定该文件是制表符划定的吗?