我已经使用shell中的命令sed删除除了我的字符串中的数字之外的所有内容。现在Sed创建副本
,我的字符串中包含其他数量及运行
sed 's/[^0-9]*//g'
而不是三个0经过三个0,我现在有0 01和02
我怎样才能防止这样做,这样的sed我可以有三个0?字符串的
样本:
0 cat
42 dog
24 fish
0 bird
0 tiger
5 fly
我已经使用shell中的命令sed删除除了我的字符串中的数字之外的所有内容。现在Sed创建副本
,我的字符串中包含其他数量及运行
sed 's/[^0-9]*//g'
而不是三个0经过三个0,我现在有0 01和02
我怎样才能防止这样做,这样的sed我可以有三个0?字符串的
样本:
0 cat
42 dog
24 fish
0 bird
0 tiger
5 fly
现在我们知道,在从du
实用程序输出文件名位数引起的问题(帽子的尖端Lars Fischer),只需使用cut
来只提取第一列(其中包含感兴趣的数据,每个文件/子目录的大小以块为单位):
du -a "$var" | cut -f1
du
输出制表符分隔的数据,并且制表符也是cut
的默认分隔符,因此只需要询问第一个字段(-f1
)。
事后,您的问题与sed
无关;您的样本数据并不代表您的实际数据。提问时始终值得创建MCVE (Minimal, Complete, and Verifiable Example)。
非常感谢这个技巧!傻傻的我,我没有意识到有些文件的名字中有数字! – Daeto
试试这个:
du -a "$var" | sed -e 's/ .*//' -e 's/[^0-9]*//g'
你能提供一个输入字符串样本吗? – MaxU
更新了帖子。图像编号和它旁边的动物在一列中。 – Daeto
所以你只想保持零? – MaxU