我从 Oracle SQL DB 进行了查询,但由于某种原因,结果文件被修剪如下:
52358288288673;01-06-2013 00:00:04;/john/wayne/subm
it;0,22;889;30008;1201;
51258186442676;01-06-2013 00:00:18;/john//wayne/finding/
sss/zone;0,22;889;30008;1531;
55344684156846;01-06-2013 00:00:31;/john/wayne/nosu
chthing;0,22;889;30008;1901;
536511965579726;01-06-2013 00:00:48;/john/wayne/cha
rs/get;0,22;889;30008;1504;
我在 OSX 上,我已经尝试使用 tr、sed、awk 和 perl 来解决我在这里看到的其他问题,但它们仍然没有奏效,或者如果我删除了所有回车符,那么我最终将所有行放在一起。
我需要一种方法来读取文件并找到没有 ; 的每一行 最后并附加下一行。
52358288288673;01-06-2013 00:00:04;/john/wayne/submit;0,22;889;30008;1201;
51251234256762;01-06-2013 00:00:18;/john//wayne/finding/sss/zone;0,22;889;30008;1531;
55344684156846;01-06-2013 00:00:31;/john/wayne/nosuchthing;0,22;889;30008;1901;
53651196579726;01-06-2013 00:00:48;/john/wayne/chars/get;0,22;889;30008;1504;
我尝试过类似的东西:
cat file.txt | sed "s/$(printf '\r')\$//"
cat file.txt | tr ';$\n' '\n'
cat file.txt | sed ':a;N;$!ba;s/\n/ /g'
cat file.txt | sed ^'s/;$//g'
但没有什么能完成工作。该文件中有更多垃圾,我已将其删除,但我找不到解决此问题的方法。我在想,当一行没有 ; 最后,然后 - >删除回车。但我想单行的要求太多了?建议?