我在eshell中运行awk然后弄死了这个buffer


#1

就是默认的eshell,没有加任何的配置。awk 处理的文件列稍微有点多68列,行不多不到100行,然后多弄了几下eshell的buffer就死了。而且,同样的awk命令,在eshell中的滚屏速度比在OS原生的terminal中慢很多:在eshell中像80286的反应、在原生terminal中看不到滚屏过程回车之后马上只能看到最后一屏输出。

大家的eshell都是这么慢的吗?

我用的老的mac 高清本儿。macOS10.10


#2

你要不把你文件和处理的命令发上来,不然怎么测试


#3

抱歉呀,我不能上传非jpg的文件。 |o|

我试试硬贴到这里 数据是b.txt

| 问卷 | 用户ID | 答题时长 | 提交时间              | 性别 | 年龄 | 地域 | 兴趣关注 | 消费水平 | Q1.麦哲伦环球航行成功后,人们才_____地球原来是圆的。【单选】 | "Q1.麦哲伦环球航行成功后,人们才_____地球原来是圆的。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q1.麦哲伦环球航行成功后,人们才_____地球原来是圆的。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q1.麦哲伦环球航行成功后,人们才_____地球原来是圆的。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q2.中国古时,人们看到天是弧形的,地是平的,所以_____我们居住的地方是天圆地方的。【单选】 | "Q2.中国古时,人们看到天是弧形的,地是平的,所以_____我们居住的地方是天圆地方的。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q2.中国古时,人们看到天是弧形的,地是平的,所以_____我们居住的地方是天圆地方的。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q2.中国古时,人们看到天是弧形的,地是平的,所以_____我们居住的地方是天圆地方的。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q3.天气预报说下午有大雨,小红看着窗外黑沉沉的天空,______快要下雨了。【单选】 | "Q3.天气预报说下午有大雨,小红看着窗外黑沉沉的天空,______快要下雨了。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q3.天气预报说下午有大雨,小红看着窗外黑沉沉的天空,______快要下雨了。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q3.天气预报说下午有大雨,小红看着窗外黑沉沉的天空,______快要下雨了。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q4.小明从小就胖,同学们都叫他“小胖”,可他奶奶总_____他吃得不够多。【单选】 | "Q4.小明从小就胖,同学们都叫他“小胖”,可他奶奶总_____他吃得不够多。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q4.小明从小就胖,同学们都叫他“小胖”,可他奶奶总_____他吃得不够多。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q4.小明从小就胖,同学们都叫他“小胖”,可他奶奶总_____他吃得不够多。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | "Q5.同学____ 小明摔得很痛。【单选】"       | "Q5.同学____ 小明摔得很痛。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q5.同学____ 小明摔得很痛。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q5.同学____ 小明摔得很痛。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q6.小明______摔得很痛。【单选】            | "Q6.小明______摔得很痛。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q6.小明______摔得很痛。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q6.小明______摔得很痛。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q7.我们______卖火柴的小女孩很想吃橱窗里美味的食物。【单选】 | "Q7.我们______卖火柴的小女孩很想吃橱窗里美味的食物。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q7.我们______卖火柴的小女孩很想吃橱窗里美味的食物。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q7.我们______卖火柴的小女孩很想吃橱窗里美味的食物。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q8.卖火柴的小女孩_______很想吃橱窗里美味的食物。【单选】 | "Q8.卖火柴的小女孩_______很想吃橱窗里美味的食物。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q8.卖火柴的小女孩_______很想吃橱窗里美味的食物。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q8.卖火柴的小女孩_______很想吃橱窗里美味的食物。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q9.大家_____小玉今天非常高兴。【单选】     | "Q9.大家_____小玉今天非常高兴。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q9.大家_____小玉今天非常高兴。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q9.大家_____小玉今天非常高兴。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q10.小玉_____今天非常高兴。【单选】        | "Q10.小玉_____今天非常高兴。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q10.小玉_____今天非常高兴。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q10.小玉_____今天非常高兴。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q11.她痛苦地瘫倒在地,任由大雨冲刷她惨白的脸。她_____她的爱人永远也回不来了。【单选】 | "Q11.她痛苦地瘫倒在地,任由大雨冲刷她惨白的脸。她_____她的爱人永远也回不来了。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q11.她痛苦地瘫倒在地,任由大雨冲刷她惨白的脸。她_____她的爱人永远也回不来了。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q11.她痛苦地瘫倒在地,任由大雨冲刷她惨白的脸。她_____她的爱人永远也回不来了。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q12.我______妹妹很伤心。【单选】           | "Q12.我______妹妹很伤心。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q12.我______妹妹很伤心。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q12.我______妹妹很伤心。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q13.妹妹______很伤心。【单选】             | "Q13.妹妹______很伤心。【单选】-知道 (a. 自然 b. 不自然 c. 语法有问题)" | "Q13.妹妹______很伤心。【单选】-觉得 (a. 自然 b. 不自然 c. 语法有问题)" | "Q13.妹妹______很伤心。【单选】-认为 (a. 自然 b. 不自然 c. 语法有问题)" | Q14.您的性别【单选】 | Q15.您的年龄(数字即可)【单行填空】 | Q16.您的母语是汉语吗?【单选】 | Q16.您的母语是汉语吗?【单选】-不是,请说明: |   |
|------+--------+----------+-----------------------+------+------+------+----------+----------+--------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+--------------------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+--------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------+-------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+----------------------------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------+-----------------------------------------------------------------------------+-----------------------------------------------------------------------------+-----------------------------------------------------------------------------+--------------------------------------------+---------------------------------------------------------------------------+---------------------------------------------------------------------------+---------------------------------------------------------------------------+----------------------+--------------------------------------+--------------------------------+-----------------------------------------------+---|
| B    | 十*l   | 80秒     | "2018-12-17 10:57:04" |      |      |      |          |          | "知道 (a. 自然 b. 不自然 c. 语法有问题)"                   | b                                                                                                       |                                                                                                         |                                                                                                         | "觉得 (a. 自然 b. 不自然 c. 语法有问题)"                                               |                                                                                                                                     | a                                                                                                                                   |                                                                                                                                     | "觉得 (a. 自然 b. 不自然 c. 语法有问题)"                                    |                                                                                                                          | b                                                                                                                        |                                                                                                                          | "知道 (a. 自然 b. 不自然 c. 语法有问题)"                                   | a                                                                                                                       |                                                                                                                         |                                                                                                                         | "觉得 (a. 自然 b. 不自然 c. 语法有问题)" |                                                                               | b                                                                             |                                                                               | "认为 (a. 自然 b. 不自然 c. 语法有问题)" |                                                                            |                                                                            | a                                                                          | "知道 (a. 自然 b. 不自然 c. 语法有问题)"                  | a                                                                                                      |                                                                                                        |                                                                                                        

shell文件k.sh内容:

awk -F "|" '{print $2"|" $3"|" $4"|" $5"|" $6"|" $7"|" $8"|" $9"|" $10"|" $63"|" $62"|" $61"|" $60"|" $59"|" $58"|" $57"|" $56"|" $55"|" $54"|" $53"|" $52"|" $51"|" $50"|" $49"|" $48"|" $47"|" $46"|" $45"|" $44"|" $43"|" $42"|" $41"|" $40"|" $39"|" $38"|" $37"|" $36"|" $35"|" $34"|" $33"|" $32"|" $31"|" $30"|" $29"|" $28"|" $27"|" $26"|" $25"|" $24"|" $23"|" $22"|" $21"|" $20"|" $19"|" $18"|" $17"|" $16"|" $15"|" $14"|" $13"|" $12"|" $11"|" $64"|" $65"|" $67 }' b.txt 

我的命令是:

>  . ./k.sh | head -3

然后,多执行了几次,就死机了,用两次ctrl-c也没反应。

一个回复只能有32000个字符,我删除了大量数据只保留了3行,如果你能复制数据到电脑的文本中的话,可以把其中第3行数据复制到总共70行来进行测试。谢谢!

另外,你换头像了,弄个这种日系的萌妹纸了?


#4

粘贴文本的话。可以用paste2或者ubuntu paste。甚至用Github的Gist(国内无法访问)。不过就我个人而言,我更喜欢用GitLab的snippet。

不好意思这才是正版pastebin

换很久了。原来的头像有点单调就换了。

我用Linux测试,很流畅啊。

试一下C-c C-k


#5

我记得 eshell在处理管道与重定向 似乎有问题

试试 https://github.com/akermu/emacs-libvterm


#6

我在eshell中,回退把提示符删掉几个字母后,buffer就死了。Mac 10.14.2, Emacs 26.1


#7

一直感觉emacs的eshell, ansi-term这些像是残废版, 不好用. 之前试用了一下vim8内置的term, 真是爽


#8

vterm勉强能用


#9

后来我还是在操作系统的terminal中弄完了这个awk程序,输出了我想要的统计结果。

我的org文件有2M了(我故意的,想看看这个系统的极限表现),在里面建立一个新的entry,把这个66列,100行的数据用表格存放,即便关闭了行号(global-display-line-numbers-mode),org的表格列的重新排序操作就十分缓慢,所以才想到用awk来完成这个重排了列的操作。重排后继续用awk做了点统计。

以后再有这种数据操作,我还是用数据库吧。


#10

若对时间不是太在意的话,用awk还是比较方便的。我去年一直在用awk解决问题,都是几万行或几十万行的数据,几十列。有时几百M,慢的时候5分钟。几天才需要这么一次处理,需求还会变,所以比较适合用脚本。

我处理的数据是东京JR电车的票据系统的数据,仅信用卡的购票数据一天就在50万条左右。

两个月之前还游在vim中,现在已经陷在emacs中了。就term这一块没vim在的好,不过libvterm是我遇到的最好的一个,已经接近原生的term了。

在emacs中的效果 11


#11

您好!几百M文件,5分钟处理完,是在emacs的libvterm中还是在操作系统的原生terminal中呢?


#12

这个倒没跑过,那个时候,我还不会用emacs呢 :grin:


#13

那是在os的terminal中了。我昨天也是在原生terminal中运行的。


#14

我现在不在以前的项目了,我觉得这libvterm中应该也不差


#15

好的,我试试这个。

另外一个朋友告诉我JR新宿站每天的吞吐量是100万人次,你觉得有没有?


#16

不太清楚,反正新宿是个大站,客流量不小。每天东京JR线通过信用卡买票的就有50万条记录左右,用现金买票应该更多。上班的人,一般买月票,所以乘客量应该是50万的好几倍。除了JR线,还有地铁,私铁。因为,我上个项目,只处理信用卡相关的数据,所以,不清楚每天具体的乘客量。

楼歪了,不聊这些了。


#17

好的,哈哈。新年快乐!


#18

新年快乐!

新年明けましておめでとうございます!


#19

新年发财哦!


#20

后来我继续处理这个问题,基于某些列的值的不同进行分类统计,因为涉及到的要判断的列有50几列,所以awk的语句就很单调又啰嗦。后来还是把全部数据塞进数据库里面用select count(*) from tbl_name group by col_x, col_y, col_z…就高效率的统计出来了,然后因为执行sql语句的mysql命令行是在eshell中操作的,于是就两个buffer中来回移动光标,抄数据库的结果到org的表格中就成了,百分比这些嘛,直接用org的表格公式就成了。:hugs:

不过在emacs中要把裸数据批量改成sql语句时候,我想把“每两个连续的空格删除掉”,emacs死机了,我是把这些数据拷贝到别的文件中单独处理的,不是在org大文件中处理的,还是死机了,是杀了emacs重启才能操作的。这个工作在系统原生的terminal中用vim完成的,vim还是有它的厉害的地方,底行命令只要没问题,回车键一敲,结果立现。相比于我emacs的僵死,我还是觉得两个都不能丢。可能emacs的死机和我的配置大多数是抄来的自己不清楚哪些冗余而导致的。

emacs,vim,mysql都是好东西,哈哈!

最后还是想说,数据库的group by子句,太厉害了。