2
我有這個小腳本,推出了一些目錄路徑。 我想mkdir所有這些路徑。從grep和管道mkdir
for filename in $(git ls-files | grep .java | grep -v 'com/foo' | sed -e 's/\(.java[^/]*\).java/\1/' | uniq)
do
echo "$filename" | sed -e 's/com\/old\/old/com\/new/' | sed 's/\(.*\)\/.*/\1/'
done
所以新的目錄中創建... COM /老/舊= COM /新
但我不能拿到的mkdir工作...我想...
path=$("$filename" | sed -e 's/com\/old\/old/com\/new/' | sed 's/\(.*\)\/.*/\1/')
mkdir -p "$path"
這只是搞亂了文件內容。
一個小更新..所以MKDIR工作,但我居然還需要與git MV的目錄後的文件被創建。所以我需要原始文件路徑。這只是迴應原始路徑,然後是新路徑。 (git ls-files | grep .java | grep -v'com/intuit'| sed -e's/\(。java [^ /] * \)。java/\ 1 /' | uniq); 做 echo $文件 echo $文件| sed -e's/com \/old \/old/com \/new /' done – klind
只刪除刪除文件名的'sed'表達式。在循環體中,使用'dirname $ path'來獲取'mkdir'的目錄部分,然後將文件移入它。 – Barmar
我在做這個.. git ls-files | grep .java | sed -e'/ com \/intuit/d'-e's/\(。java [^ /] * \)。java/\ 1 /'| uniq |同時讀取路徑;做 git mv $ path'$ path | sed -e's/com \/old \/old/com \/new /'' done 但是,這只是搞亂了文件的內容..(那實際上還需要在下一步中做) – klind