インポート後の行に「import packagename」を挿入する必要があります。特定の単語を含むファイル内。私が試していること:
find iOS/Chat \
-type f \
-name "*.swift" \
-exec gsed -e "/Behavior/ " -e "20a import RxSwift" -i {} +;
また試してみました:-exec gsed -e "/Behavior/20a import RxSwift" -i {} +;
この構造は機能しないようです。
gsed - gnused、bsd sed で make を動作させる方法がわかりませんでした。mac os。
UPD: 結果は僅差
find iOS/Chat -type f -name "*.swift*" -exec grep -iHn "Behavior" {} \; | cut -d: -f-1 | xargs gsed -i '/import Foundation/a import RxSwift'
短所:
- if set
gsed -i '/import/a import RxSwift' its called for each import enter line. I want only first. Something like:
gsed -i '0,/import/a import RxSwit'` は私には機能しません...
まだ調査中です…。
答え1
はい、解決策を見つけました。
brew install gsed
- 必要
find ./ \
-type f \
-name "*.swift*" \
-exec grep -lHn "Reachability" {} \; | cut -d: -f-1 | xargs gsed -i -e '/import/{i\import RxReachability' -e ':a;n;ba}'
最初の発生方法sed
:https://stackoverflow.com/a/9970915/887325
find
-Reachability
テキストを含むすべてのファイルを検索します。cut
- パスのみxargs
- パスファイルの引数としてgsed
gsed
- 最初のimport
行に{i\が含まれているかどうかを検索します - 新しい行を挿入します:import RxReachability
この答えが90歳の私にとって役立つことを願っています。