2017-07-30 63 views
0

我正试图解决以下问题,请原谅我,因为我相对较新!在zshell中格式化grep输出

我想让它给出格式为[0-9] [0-9] [0-9] [0-9] [0-9]的文件夹中的文件名列表[ 0-9] [0-9] [0-9] [0-9] \;

其中每个文件名是一个9位数字,我希望它给我一个可复制的列表,每个文件名后缀为\;

我已经得到尽可能; “0-30] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0 -9]“

但我不知道如何以我想要的方式将其格式化。

+0

'bash'!='zsh' – Cyrus

回答

0

grep -l 'PATTERN'给出了其内容中具有“PATTERN”的文件的名称。 (grep -r通过进入子目录进行递归搜索。)

如果您需要具有某种模式的文件名(而不是内容),或者以另一种方式存在,如果您需要过滤掉ls命令,下面会做。

ls -1 | grep '^[0-9]\{9\}$' 

但是如果你需要重新格式化滤波输出(把一个分号结束),grep不能单独处理这个问题。有几种解决方案。以下是sed解决方案。

ls -1 | sed -n 's:^[0-9]\{9\}$:&;:p'