所有的转换命令、所有的制表符、所有的技巧我都试了,可就是......

本文讲述了作者在码云项目中遇到的问题,需要将多行数据合并为一行并导入飞书在线表格,尝试了多种Linux命令如sed、awk、tr,以及制表符的不同表示方式,但拷贝到飞书后数据仍无法按预期分开。通过分析发现是Linux终端对制表符的支持问题导致电子试算表软件无法正确解析。最终,作者找到了通过文本文件保存并复制的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       按照题目,接下来的话应该就是“ 莫搞定啊!在线等大佬解救地说,真是挺急的” -- 呵呵,要果真如此,那还有此文啥事呢 ?

       话说,是在码云上一个自创的开源项目上,筛选出了多行数据,要把它们拼凑成一行,再拷贝到《飞书》的在线表格里的。本来以为够简单,多行变一行么,即使是Linux Bash,应亦不在话下,结果呢......

       试了以下N种方法:

  • sed ':a ; N;s/\n/\ \t / ; t a ; ' HasUpdate.txt
  • sed ':a ; N;s/\n/\t\t / ; t a ; ' HasUpdate.txt
  • cat HasUpdate.txt | xargs echo -e "\t"
  • cat HasUpdate.txt | tr '\n' $(echo 9 | awk '{printf("%c", $1)}')
  • cat HasUpdate.txt | tr '\n' "\11"
  • cat HasUpdate.txt |  awk '{print $1"\t"$2}'   
  • cat HasUpdate.txt | tr '\n' "+" | awk -F "+" '{print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6"\t"$7"\t"$8"\t"$9}'

    这些方法在Konsole终端内,都能连成一长串,可只要一拷贝到飞书XLS里,就全挤进了一个单元格里,并没有我想象中的每一个数字依次进不同的单元格!Linux的三件大杀器:sed / awk / tr ,全试过了; 制表符的三种表示法:/t /11 /9,也全试了;它们之间的组合,更没有错过。结果都~木~有~效~啊!

      既然进不去,那就想着怎么出来的吧。随便在A1单元格里填上A,B1单元格里填上B,然后把A1和B1单元格一起复制出来,看到的就是“A B”,中间的看似空格,肯定是制表符的。将它存在随便一个文本文件里,再用ghex打开查看,果然就是“65 9 66",摆明了就是这三个字符的16进制数啊!那真是鬼来了,那我就把这三个重新复制进飞书呢,我去~~三合一! 问题原因至此找到,就是Linux下的终端,对制表符的支持是有大大的问题的,导致了像LibreOffice、飞书等电子试算表软件,都无法将它分隔开来。

    原因知道了,解决自然简单。终端之道路既然不通,那就用文本文件保存咯。程序保存成一行后,再打开复制,不管到哪里,都能被分开了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值