最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何在node.js中以编程方式使用grep命令

IT培训 admin 8浏览 0评论

如何在node.js中以编程方式使用grep命令

我试图只显示vmRSS属性。当我运行命令命令

cat ./Status

我得到了很多属性及其相应的值。我想要做的是以编程方式仅显示vmRSS。我可以在控制台中执行如下操作:

cat ./status | grep VmR

但是我怎么能以编程方式做到这一点。

我的尝试

const ls2 = spawn('cat', ['/proc/' + process.pid + '/status']);
回答如下:

由于child_process spawn在子进程中启动shell,我认为你最好在当前的shell中使用child_process exec()命令。

这是一个例子(感谢@Inian):

const { exec } = require('child_process');

exec('grep VmR /proc/' + process.pid + '/status', (err, stdout) => {
  if (err) return console.log(err)
  console.log(stdout)  // VmRSS:     13408 kB
})

否则,如果你不想生成一个shell来获取该信息,你可以使用fs来读取文件,如下所示:

const fs = require('fs');

let process_status = '/proc/' + process.pid + '/status';

fs.readFile(process_status, { encoding: 'utf8' }, (err, buf) => {
  if (err) return console.log(err)

  let lines = buf.split('\n')  // each line in an array
  let line = lines.filter(line => /VmRSS/.test(line))  // find interesting line
  let VmR = line[0].replace(/\t/g, '')  // clean output removing tabulation

  console.log(VmR)  // VmRSS:   13208 kB

})

如何在node.js中以编程方式使用grep命令

我试图只显示vmRSS属性。当我运行命令命令

cat ./Status

我得到了很多属性及其相应的值。我想要做的是以编程方式仅显示vmRSS。我可以在控制台中执行如下操作:

cat ./status | grep VmR

但是我怎么能以编程方式做到这一点。

我的尝试

const ls2 = spawn('cat', ['/proc/' + process.pid + '/status']);
回答如下:

由于child_process spawn在子进程中启动shell,我认为你最好在当前的shell中使用child_process exec()命令。

这是一个例子(感谢@Inian):

const { exec } = require('child_process');

exec('grep VmR /proc/' + process.pid + '/status', (err, stdout) => {
  if (err) return console.log(err)
  console.log(stdout)  // VmRSS:     13408 kB
})

否则,如果你不想生成一个shell来获取该信息,你可以使用fs来读取文件,如下所示:

const fs = require('fs');

let process_status = '/proc/' + process.pid + '/status';

fs.readFile(process_status, { encoding: 'utf8' }, (err, buf) => {
  if (err) return console.log(err)

  let lines = buf.split('\n')  // each line in an array
  let line = lines.filter(line => /VmRSS/.test(line))  // find interesting line
  let VmR = line[0].replace(/\t/g, '')  // clean output removing tabulation

  console.log(VmR)  // VmRSS:   13208 kB

})
发布评论

评论列表 (0)

  1. 暂无评论