我在shell中使用sed命令除了字符串中的数字以外的所有内容。
现在,我的字符串在运行
之后包含其他数字中的三个0uint128_t
而不是三个0,我现在有0 01和02。
如何防止sed这样做,以便我可以拥有三个0?
字符串示例:
sed 's/[^0-9]*//g'
答案 0 :(得分:3)
现在我们知道du
实用程序输出中的文件名中的数字导致问题(帽子的尖端为Lars Fischer),只需使用cut
仅提取第一列(其中包含感兴趣的数据,每个文件&s; / subdir。的大小以块为单位):
du -a "$var" | cut -f1
du
输出制表符分隔的数据,标签也是cut
的默认分隔符,因此只需要询问第一个字段(-f1
)。
事后看来,您的问题与sed
无关;您的样本数据根本不能代表您的实际数据。在提问时,总是值得创建一个MCVE (Minimal, Complete, and Verifiable Example)。
答案 1 :(得分:0)
试试这个:
du -a "$var" | sed -e 's/ .*//' -e 's/[^0-9]*//g'