unix正则表达式:从字符串末尾匹配到空白字符



git命令:

git diff-tree --no-commit-id --name-status -r <commit hash>

生成一个看起来有点像这样的列表:

D    path/to/deleted/file.txt
A    path/to/added/file.txt
A    path/to/added/file.asd
M    path/to/modified/file.txt

我只想grep出添加和修改的(A或M(txt文件及其路径。我知道我可以这样做:

grep -v "^D"

不包括已删除的文件。

grep -o "w*.txt$"

只获取txt文件。但是这个命令不会给我文件的路径。由于w只匹配单词。有没有其他通配符可以匹配到空白字符(这样它就可以删除带有相应空白的A/M(?

使用S匹配任何非空白的内容。

grep -o 'S*.txt$'
awk /^A/^M/'{$0=$NF} 1'
path/to/added/file.txt
path/to/added/file.asd
path/to/modified/file.txt
$

最新更新