Grep:从git status -s的行输出中获取第一个char / symbol

时间:2015-11-10 11:45:23

标签: git unix grep

此命令是:

while read -r line
do
    modfied="$line"
    echo "Found: $modfied"
done < <(git status -s | grep "M " | awk '{if ($1 == "M") print $2}' | grep --file=.git/ForGeneratingSBConfigAlert.txt --fixed-strings)

它打印出git status -s命令的逐行结果,并获得带有空格的'M'符号(表示文件已被修改)。但我希望它只匹配命令输出的第一个符号,如果第一个符号匹配其中一个,则输出整行:M,A,D,R,C。第二个符号可以是每隔一个符号,甚至是空格< / p>

1 个答案:

答案 0 :(得分:0)

在模式的开头使用^。此符号在行的开头匹配。

... | grep '^M ' | ...

顺便说一句,您可以使用awk程序中的模式/^M /将其折叠到awk命令中 - 这将大大简化您的shell管道。

... | awk '/^M / {print $2}' | ...