Печатать только уникальные строки из файла, а не дубликаты.

Во-первых, перепишите историю bee, чтобы переместить все файлы в подкаталог:

cd /path/to/bee
git filter-branch -f --prune-empty --tree-filter '
dir="my fancy/target directory"
if [ ! -e "$dir" ]
then
    mkdir -p "$dir"
    git ls-tree --name-only $GIT_COMMIT | xargs -I files mv files "$dir"
fi'

git log --stat должен показать каждый файл, появляющийся в моем причудливом/целевом каталоге. Теперь вы можете объединить историю в aye с лёгкостью:

cd /path/to/aye
git remote add -f bee /path/to/bee
git checkout -b bee-master bee/master
git rebase master
git checkout master
git rebase bee-master

Пересоздайте подмодуль в aye:

git submodule add git://my-submodule 'my fancy/target directory/my-submodule'

Наконец, вы можете очистить aye:

git rm 'my fancy/target directory/.gitmodules'
git branch -D bee-master
git remote remove bee

Возможно, вам также придётся исправить абсолютные пути в вашем репозитории (например, в .gitignore)

3
09.02.2016, 16:46
3 ответа

Попробуйте этот AWK!

awk '{a[$0]++} END {for (x in a) if (a[x] == 1) print x}'
1
27.01.2020, 21:09

Это задание для uniq :

$ LC_ALL=C uniq -u file
grapes
lime
peach

Если вам нужны другие инструменты, например perl :

perl -nle '$h{$_}++; END {print for grep { $h{$_} == 1 } %h}' <file
9
27.01.2020, 21:09
awk '{arr[$1]++} END {for (i in arr) {if (arr[i]==1) {print i} }}' 1
grapes
lime
peach
1
27.01.2020, 21:09

Теги

Похожие вопросы