0
我想要的是一個腳本shell,它遍歷git status
命令的每一行命令, 查找已修改的文件併爲每個文件路徑運行給定的命令。用於過濾git狀態命令的Linux Shell腳本
所以更具體, 鑑於這種輸出:
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: ASCourses-UI-vechi/src/application/Chat.fxml -> ASCourses-UI /src/main/resources/fxml/ChatController.fxml
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: ASCourses-UI-vechi/bin/.gitignore
modified: ASCourses-UI-vechi/bin/application/Chat.css
modified: ASCourses-UI-vechi/bin/application/Chat.fxml
modified: ASCourses-UI-vechi/bin/application/ChatController$1.class
modified: ASCourses-UI-vechi/bin/application/ChatController$2.class
modified: ASCourses-UI-vechi/bin/application/ChatController$3$1.class
modified: ASCourses-UI-vechi/bin/application/ChatController$3.class
modified: ASCourses-UI-vechi/bin/application/ChatController$4.class
modified: ASCourses-UI-vechi/bin/application/ChatController$5.class
我要爲被修改,並與ASCourses-UI-vechi開始運行的每個文件git checkout file_path
我該怎麼到目前爲止,這是:
#!/bin/bash
(IFS='
'
for x in ` git status | grep -E 'modified.*ASCourses-UI-vechi' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'`;
do
echo $x;
done)
所以目前我過濾和修剪輸出,並獲得這樣的:
modified: ASCourses-UI-vechi/bin/.gitignore
modified: ASCourses-UI-vechi/bin/application/Chat.css
modified: ASCourses-UI-vechi/bin/application/Chat.fxml
modified: ASCourses-UI-vechi/bin/application/ChatController$1.class
modified: ASCourses-UI-vechi/bin/application/ChatController$2.class
modified: ASCourses-UI-vechi/bin/application/ChatController$3$1.class
modified: ASCourses-UI-vechi/bin/application/ChatController$3.class
modified: ASCourses-UI-vechi/bin/application/ChatController$4.class
modified: ASCourses-UI-vechi/bin/application/ChatController$5.class
問題是我不知道如何從ASCourses字符串的第一次出現,直到串整串