NaN*_*NaN 5 bash split escaping
给定常见的bash-tools,使用该split命令很容易将大文件(在我的情况下是MySQL转储,因此是TSV文件)拆分成更小的部分.此外,此命令支持在n新行(即-l参数)之后拆分文件.但是此命令不区分转义和未转义的换行符,因此可能会将单个表行分成两个不完整的部分.
示例(TSV有2列)
cool 2014-12-15 17:31:00
do not censor it ...^M\\n 2016-01-24 22:33:00
watch out ari, you've got compeition! hahah 2001-12-05 19:11:01
Oh God, the poor guy! xD\\nCan't wait to watch this! 2011-07-11 22:01:20
wish i could do that.\\n 2001-02-07 00:24:11
Funny! I will use this reason when I drink something in other houses 2015-06-10 12:20:00
Run Code Online (Sandbox Code Playgroud)
如您所见,有两列(第一列包含注释,第二列包含日期),由选项卡分隔.我只想到了转义的换行符,没有打印标签和未转义的换行符.如果你将这些行放入一个文件并将其拆分(例如 split example.tsv -l 1),你将获得9个文件,但只有6个注释(3个包含转义的换行符)!这是因为转义的换行符被视为带有反斜杠的常规换行符.这对我来说是个大问题,因为拆分文件可能会导致输出文件中的表行不完整.
是否有可能忽略转义的换行符或有人知道另一个可以执行此操作的命令吗?