Tag: sed

打开一个JavaScript正则expression式的Sed函数

我在bash有这个文本规范化函数 normalize_text() { tr '[:upper:]' '[:lower:]' | sed -e 's/^/__label__/g' | \ sed -e "s/'/ ' /g" -e 's/"//g' -e 's/\./ \. /g' -e 's/<br \/>/ /g' \ -e 's/,/ , /g' -e 's/(/ ( /g' -e 's/)/ ) /g' -e 's/\!/ \! /g' \ -e 's/\?/ \? /g' -e 's/\;/ /g' -e 's/\:/ /g' […]

为什么我不能将npm install安装到sed,同时保留颜色和进度更新?

如果我inputnpm i | sed "s/^/ /" npm i | sed "s/^/ /" ,打印到标准输出时, npm i的输出没有间隔。 例如,我得到以下内容: $ npm i | sed "s/^/ /" npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm WARN [name_removed]@0.0.2 No repository field. npm WARN [name_removed]@0.0.2 No […]

在巨大的文件中合并CSV行

我有一个像这样的CSV 783582893T,2014-01-01 00:00,0,124,29.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 783582893T,2014-01-01 00:15,1,124,29.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 783582893T,2014-01-01 00:30,2,124,29.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 783582855T,2014-01-01 00:00,0,128,35.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 783582855T,2014-01-01 00:15,1,128,35.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 783582855T,2014-01-01 00:30,2,128,35.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y … 783582893T,2014-01-02 00:00,0,124,29.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 783582893T,2014-01-02 00:15,1,124,29.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 783582893T,2014-01-02 00:30,2,124,29.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 尽pipe有50亿条logging。 如果您注意到第一列和第二列(当天)的一部分,则三个logging全部“分组”在一起,并且仅仅是当天的前30分钟的15分钟间隔。 我想要输出看起来像 783582893T,2014-01-01 00:00,0,124,29.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 783582855T,2014-01-01 00:00,0,128,35.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y … 783582893T,2014-01-02 00:00,0,124,29.1,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y,40.0,0.0,40,40,5,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,Y 其中重复行的前4列被省略,其余的列与第一个logging相结合。 基本上我每天换线的时间是15分钟,到每一天是1天。 由于我将处理50亿条logging,所以我认为最好的方法是使用正则expression式(和EmEditor)或一些为此(multithreading,优化)而devise的工具,而不是自定义的编程解决scheme。 尽pipe我对nodeJS或C#中的想法是比较简单和超快的。 如何才能做到这一点?

如何在NodeJS中读取大文件?

我试图读取一个2000万行文件,并更正从Windows到Mac的行结束。 我知道它可以在sed中完成,但sed给了我一个错误,我不知道如何解决(dos2unix:二进制符号0x0008行625060find)。 所以我试图在NodeJS中解决这个问题。 这是我的代码: var fs = require('fs'); var eol = require('eol'); //read file var input = fs.readFileSync(process.argv[2], 'utf8'); //fix lines output = eol.auto(input); console.log("Lines Fixed! Now Writing….") //write file fs.writeFile(process.argv[2] + '_fixed.txt', output, function (err) { if (err) return console.log(err); }); console.log("Done!") 问题是文件太大,我得到这个错误buffer.js:513扔新错误('“toString()”失败');

nodejs'exec'命令不能正确执行'sed'命令

我有一个文件,我想要扫描它,find字符“{”并创build一个新行,然后添加一个IP在新行,并添加一个半科隆到行的末尾,然后写入configuration文件。 从shell运行时,我可以使用以下sed命令完成此操作: sed -i 's/{/&\n1.1.1.1;/g' /tmp/test.conf 在test.conf里面: acl testACL{ }; shell中命令的输出显示如下: acl testACL{ 1.1.1.1; }; 作品完美! 现在问题是当我得到nodejs执行它: var sys = require('sys'); var exec = require('child_process').exec; function puts(error, stdout, stderr) { sys.puts(stdout) }; exec("sed -i 's/{/&\n1.1.1.1;/g' /tmp/test.conf",puts); return 0; 当我在控制台中运行命令:'nodejs test.js' 我得到空白输出,当我检查文件,文件'test.conf'没有被改变! 为什么?! 另外,如果你认为“它的权限问题! 我已经有nodejs exec命令写testingconfiguration文件的基本回声,它工作正常。 我也尝试了'shelljs'模块没有运气那里。 我已经尝试了几个小时的无数组合现在没有盛行! 我感到困惑。

如何使用Jenkins在package.json中自动化版本号

这里是我的package.json的样子: { "name": "Myproject", "version": "0.4.13", 注意 :这里4不是次要版本。 0013是次要的 "dependencies": { "lodash": "^4.0.0", "vinyl-fs": "2.2.1" }, "repository": {}, "devDependencies": { ……… …… 如何使用Jenkins构build自动化package.json的版本控制。 所需的格式应该是: 0.4.13- $ BUILD_NUMBER到目前为止,我尝试使用sed命令: sed -i“s / version:。* / version:0.4.13- $ BUILD_NUMBER /”package.json 但是它并没有更新package.json文件中的版本号。 也使用 npm版本0.4.13- $ BUILD_NUMBER 仅供参考:生成的构build工件应该看起来像0.0013-1.war