Bash: изменение расширений файлов всех файлов в каталоге и копирование нечетных строк

Этот ответ использует python для доступа к базе данных banshee, а затем выполняет действие sql, которое списки donbicca перечисляют с помощью твиста. Вместо того, чтобы многократно запускать код sql, я попросил python закодировать код sql по количеству экземпляров, которые существуют в SQL-коде. Вам нужно всего лишь запустить этот код один раз. Вам нужно заменить свой домашний путь (замените «/ home / JONDOE» на ваш домашний путь).

#!/usr/bin/env python

import sqlite3

#open database to determine number of rows to loop over

db = sqlite3.connect('/home/me/.config/banshee-1/banshee.db')
cursor = db.cursor()

a = cursor.execute('SELECT TrackID from coretracks group by TitleLowered,ArtistID,AlbumID,Title')
a_trackid = a.fetchall()
db.close()

#Close database to ensure results do not impact future results. Then reopen database

db = sqlite3.connect('/home/me/.config/banshee-1/banshee.db')
cursor = db.cursor()
sql = ('DELETE from coretracks where TrackID in (SELECT TrackID from (SELECT TrackID as trackid, count(TrackID) as g from coretracks group by TitleLowered,ArtistID,AlbumID,Title) where g > 1)')

for i in a_trackid:
    cursor.execute(sql)

db.commit()
db.close()
1
задан 16 December 2013 в 09:57

2 ответа

Не уверен, что вы подразумеваете под «нечетными строками» [1], но этот оператор достигает того, что делает ваш код в настоящее время:

cd "$1" && rename 's/\.txt$/.bat/' *.txt

Не нужно делать собственные сообщения об ошибках, shell будет делать их просто отлично.

[1] Это делает его очень похожим на домашнее задание Uni.

0
ответ дан 24 May 2018 в 14:04
  • 1
    нечетные строки из TXT-файлов, которые можно переименовать. В значительной степени это означало, что C весь семестр, с которым я познакомился до uni, так завершил все задания C, получил сценарий, чтобы ознакомиться с Unix. Множество вещей, которые нужно изучить, а также после C / C ++ и некоторых сборок, делая вещи по всему миру по типу, вместо того, чтобы циклически перебирать все элементы один за другим, - это новая концепция, к которой мне нужно привыкнуть. Ура! – user225827 16 December 2013 в 15:18

Спасибо всем, кто ответил, вы очень помогли мне в понимании bash-скриптов, теперь, когда этот вопрос решен, как можно было бы закрыть вопрос?

Я использовал скрипт предоставленный John1024, работал безупречно. Очень уместно для этого. Приветствия

! / Bin / sh

cd "$ 1" || {echo "Не удалось записать cd в каталог $ 1. Выход." ; выход 1; } для fname в * .txt do awk 'NR% 2 == 1 {print; } '"$ fname"> "$ {fname% .txt} .bat" done

-1
ответ дан 24 May 2018 в 14:04
  • 1
    Если ответ, заданный @ John1024, сработал для вас, тогда, пожалуйста, примите его, а не добавьте свою благодарность, как «ответ». - см. askubuntu.com/help/accepted-answer – steeldriver 20 December 2013 в 04:49

Другие вопросы по тегам:

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