Для MacOS, як видалити текст (довгі абзаци) у декількох файлах?


0

Я навчаюся Swift, а Оголошення про репозиції на github занадто довге.

Це дуже важливо. Я бачив зміст, тому я думаю, що це нормально, щоб не бачити його.

Моє питання, як видалити довгі абзаци у кожному .swiftфайлі.

// Copyright (c) 2014-2017 Alamofire Software Foundation ( http://alamofire.org/ )

// Це дозвіл надано безкоштовно будь-якій особі, яка отримує дозвіл
...

// ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ.

Я думаю , що це так само , як мати справу з .m/ .hфайлів Objective-C.

Це питання схоже на питання Знайти і замінити текст у декількох файлах .

Хоча платформа є Mac OS.

Дякуємо заранее, :-)

Наприклад, довгий абзац такий:

// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ )
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

1
"Вище зазначене повідомлення про авторські права та це повідомлення про дозвіл повинні бути включені до всіх копій або значних частин Програмного забезпечення." Це означає, що ви залишите його там, де воно вам подобається чи ні, інакше ви порушуєте умови коду, який ви використовуєте.
Tetsujin

Так, я згоден і змінив своє ставлення.
dengApro

Відповіді:


3

Використання пошуку та заміни є надмірним для цього. Якщо текст на початку всіх ваших файлів однаковий, виконайте наведені нижче дії.

for f in *.swift; do tail -n +20 < "$f" > "$f.tmp"; mv "$f.tmp" "$f"; done

Це використовується tailдля надання вмісту кожного файлу, починаючи з рядка 20.

Але я стверджую, що ви не повинні видаляти текст ліцензії з цих файлів. Ви, напевно, не будете редагувати код де-небудь поруч з ними, і це лише коментарі, тому вони не впливають на ваш код або компілюються двійкові файли.


Так, я згоден і змінив своє ставлення. І деякі коментарі занадто довгі, тому я повинен прокручувати кожен файл
dengApro

1
@dengApro з допомогою пункту меню «знайти» або Xcode в стрибок бар , щоб уникнути необхідності прокрутки: stackoverflow.com/a/14540548/28290
Метт Сефтон

1
find . \( -name "*.m"  -o -name "*.h" -o -name "*.swift" \) -print0 | while read -d $'\0' file
do 
    path=${file:1}
    f="$(pwd)$path"
    number=$(grep  -n -m  1  "^[^\/\ ]" $f  |sed  's/\([0-9]*\).*/\1/' )
    if (( $number > 2 )) ; then
        num=$((number-1))
        tail -n +$num < "$f" > "$f.tmp"
        mv "$f.tmp" "$f"
    fi
done

покращено на основі @black_pearl


0

У Xcode, просто вставте слова і замінити його на пробіл

введіть опис зображення тут


0

Завдяки @Matt Sephton, я розробив наступне, розрахував останнє місце розташування коментаря, потім видалив його

cd $1
find . -name "*.swift" -print0 | while read -d $'\0' file
do 
    path=${file:1}
    f="$(pwd)$path"
    number=$(grep  -n -m  1  "^[^\/]" $f  |sed  's/\([0-9]*\).*/\1/' )
    num=$((number-1))
    tail -n +$num < "$f" > "$f.tmp"
    mv "$f.tmp" "$f"
done
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.