使用 bash 进行文本处理

发布于 2024-12-15 01:20:25 字数 808 浏览 1 评论 0原文

我有一个 vmstat 转储文件,其中包含这种格式的标头和值,

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
12  0 5924396 20810624 548548 935160    0    0     0     5    0    0 60  5 34  0  0  
12  0 5924396 20768588 548548 935160    0    0     0     0 1045 1296 99  0  0  0  0  
12  0 5924396 20768968 548548 935452    0    0     0    32 1025 1288 100  0  0  0  0  
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
 4  0 5924396 20768724 548552 935408    0    0     0    92 1093 1377 33  0 67  0  0  

我正在 bash 中编写一个脚本,该脚本仅提取包含带有数字(即值)的行的行,并删除包含字母表的所有行。我该怎么做

I have a vmstat dump file that has the header and values in this format

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
12  0 5924396 20810624 548548 935160    0    0     0     5    0    0 60  5 34  0  0  
12  0 5924396 20768588 548548 935160    0    0     0     0 1045 1296 99  0  0  0  0  
12  0 5924396 20768968 548548 935452    0    0     0    32 1025 1288 100  0  0  0  0  
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
 4  0 5924396 20768724 548552 935408    0    0     0    92 1093 1377 33  0 67  0  0  

I'm writing a script in bash that extracts just the lines containing lines with numbers i.e. values and remove all lines containing the alphabet. How do I do that

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

彡翼 2024-12-22 01:20:25

如果您需要仅包含数字和制表符\空格的行,grep -P "^[0-9\ \t]*$" 应该可以帮助您。

gt; cat ./text | grep -P "^[0-9\ \t]*$"
12  0 5924396 20810624 548548 935160    0    0     0     5    0    0 60  5 34  0  0  
12  0 5924396 20768588 548548 935160    0    0     0     0 1045 1296 99  0  0  0  0  
12  0 5924396 20768968 548548 935452    0    0     0    32 1025 1288 100  0  0  0  0  
 4  0 5924396 20768724 548552 935408    0    0     0    92 1093 1377 33  0 67  0  0  

If you need a lines with numbers and tabs\spaces only, grep -P "^[0-9\ \t]*$" should helps you.

gt; cat ./text | grep -P "^[0-9\ \t]*$"
12  0 5924396 20810624 548548 935160    0    0     0     5    0    0 60  5 34  0  0  
12  0 5924396 20768588 548548 935160    0    0     0     0 1045 1296 99  0  0  0  0  
12  0 5924396 20768968 548548 935452    0    0     0    32 1025 1288 100  0  0  0  0  
 4  0 5924396 20768724 548552 935408    0    0     0    92 1093 1377 33  0 67  0  0  
叹梦 2024-12-22 01:20:25

cat 文件名 | grep "[0-9]"

cat filename | grep "[0-9]"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文