2012-03-08 6 views
2

Я пытаюсь использовать следующий сценарий AWK для подсчета каждые 1000 записей из файла с именем file.txt и вложить эти записи в скобкахAWK сценария настройки формата

содержание file.txt

awk '{ printf $0 " " } NR%1000 == 0 { print "" }' file.txt | sed 's/.*/(&)/' 

выход

(12345 23456 43567) 

Мне нужно assotciate этот вывод с тузд навалом удалить заявление, такие как следующий

Delete from ReportingDetail where ReportingDetailID IN (12345,23456,43567); 
  1. Я не могу добавить «Удалить из ReportingDetail где ReportingDetailID IN "в birnining каждой линии.
  2. Я не могу добавить «,» между записями.

Ваша помощь очень ценится!

+0

+1 для хорошей проблемы заявление, ввод образца, ожидаемый вывод И некоторый код! Удачи. – shellter

ответ

2

Вы можете сделать это только с СЭД:

sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/$/)/' file.txt 

Eg:

$ echo "1 2 3"|sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/$/)/' 
Delete from ReportingDetail where ReportingDetailID IN (1,2,3) 

Edit - для обновления (т.е. когда у вас есть номера на разных линиях), просто предварять то, что вы уже :

awk '{ printf $0 " " } NR%1000 == 0 { print "" }' file.txt | sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/,$/)/' 

Например:

$ echo -e "1\n2\n3"|awk '{ printf $0 " " } NR%1000 == 0 { print "" }'|sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/,$/)/' 
Delete from ReportingDetail where ReportingDetailID IN (1,2,3) 

Вы также можете сделать это без AWK, как это:

$ echo -e "1\n2\n3\n4"|tr "\n" " "|sed -e 's/ /,/g' -e 's/^/Delete from ReportingDetail where ReportingDetailID IN (/' -e 's/,$/)/' 
Delete from ReportingDetail where ReportingDetailID IN (1,2,3,4) 

Примечание эхо я использовал только для тестирования, то есть это то, что она производит:

$ echo -e "1\n2\n3\n4" 
1 
2 
3 
4 
+0

Думаю, мне понадобится 100 лет, чтобы вы были сегодня! Спасибо за вашу помощь! ты жжешь!! – Deano

+0

Хех, теперь я чувствую себя каким-то пришельцем :) (я не, честь разведчика!) Http://xkcd.com/718/ В любом случае, рад, что это сработало для вас! –

+0

lol не отставайте от хорошей работы! спасибо, что пришли сюда! – Deano

Смежные вопросы