awk скрипт

39 отговора 0 прегледа
#1

awk скрипт

Здравейте имам следния проблем , опитвам се да напиша скрипт който да копира съдържанието на един текстови файл , и до го paste-не на определен ред на всички .txt файлове в определена директория ползвайки awk. Предварително благодаря за помощта.

Отговор
в отговор на no3vil #2

Re: awk скрипт

Я ... За пръв път нещо интересно в този клуб. И до къде си стигнал?

Господ ще ми прости греховете. Това му е работата.
Отговор
в отговор на no3vil #3

Re: awk скрипт

Само си мислиш че се опитваш или имаш някакъв резултат който евентуално можеш да постнеш?

Колегата който ти е отговорил преди мен разбира много, но тук не е място да пишем безплатни домашни и ако искаш да ти се помогне... постарай се повечко.

Отговор
в отговор на Бokop #4

Re: awk скрипт

Това ми е скрипта:

ARGS=2
E_WRONGARGS=85
if [$# -ne "ARGS"]
then
echo "Usage: directory template.txt"
exit $WRONGARGS
fi

args=("$@")
temp=$RANDOM

for file in $(ls $1/*.txt)
do
awk 'NR==10 {print "test"}1' $file>$temp
mv $temp $file
done


Така това претърсва всички txt файлове в директорията зададена като 1-ви аргумент на скрипта и на 11 ред шляпа test, аз обаче искам да е съдържанието на темплейта , който е 2-ри аргумент , пробвах доста варианти но нещо не успях да го наглася.

Отговор
в отговор на no3vil #5

Re: awk скрипт

Довечера ще го погледна.

Edit: Като гледам това не е awk а bash скрипт. Нищо, че се ползва и awk.

Господ ще ми прости греховете. Това му е работата.

Редактирано от Бokop на

Отговор
в отговор на no3vil #6

Re: awk скрипт

Много неграмотно написан bash скрипт.

The last good thing written in C was Franz Schubert's Symphony No. 9.
Отговор
в отговор на | #7

Re: awk скрипт

Пак ще сгреша да ти кажа нещо сериозно. Това е типично в твой стил. Вместо да се заяждам, че е неграмотно написан аз се радвам, че съм видял нещо с наченки на смисленост тук. На тебе май ти се четат теми само за каски и тениски с нинджи.


Господ ще ми прости греховете. Това му е работата.
Отговор
в отговор на | #8

Re: awk скрипт

Нямам претенциите да съм скрипт гуру, щом можеш напиши го по грамотно да се научим и ние. Както каза колегата има хора който живеят да се заяждат, за съжаление предимно в бг форумите. Ако ще помагаш супер, ако не приятен ден!

Отговор
в отговор на no3vil #9

Re: awk скрипт

Ами например това:

for file in $(ls $1/*.txt)

съвсем спокойно може да се замени с

for file in $1/*.txt

The last good thing written in C was Franz Schubert's Symphony No. 9.
Отговор
в отговор на Бokop #10

Re: awk скрипт

Щото ти каза нещо сериозно в тази тема, нали? Присмял се хърбел на щърбел.

The last good thing written in C was Franz Schubert's Symphony No. 9.
Отговор
в отговор на | #11

Re: awk скрипт

Ок , спестихме 5 символа , даи сега едно рамо с това

awk '/string/ {c=6} (c--) {if (NR!=1) {print "test"}1}1' filename

как да копира съдържанието на файл 6 реда след string, а не да набивам след print това което искам

Отговор
в отговор на no3vil #12

Re: awk скрипт

Спестихме напълно малоумното изпълнение на цяла команда.

Не знам, awk не използвам.

The last good thing written in C was Franz Schubert's Symphony No. 9.

Редактирано от | на

Отговор
в отговор на | #13

Re: awk скрипт

Така имаме напредък

cat $2
while read line
do
awk -v template=$line '/string/ {c=6} (c--) {if (NR!=1) {print template}1}1' filename
done<$2

Сега вкарва съдържанието на темплейт файла $2 в този който искам да едитвам, но се оказа, че ако в темплейта на един ред има една дума всичко е ОК , но ако има 2 думи с разстояние между тях ми вади грешка:

cannot open file '/string/ {c=6} (c--) {if (NR!=1) {print template}1}1' for readind

Отговор
в отговор на no3vil #14

Re: awk скрипт

s/template=$line/template="$line"/

The last good thing written in C was Franz Schubert's Symphony No. 9.
Отговор
в отговор на | #15

Re: awk скрипт

Да усетих се , и последен бъг , в темплейта имам :

DRIVE "drive_1"
{
}

а го получавам огледално в новия файл

}
{
DRIVE "drive_1"

Някакви предложения ?

Отговор
в отговор на no3vil #16

Re: awk скрипт

Ами скрипта ти е съвсем малоумен и "обръща" файла. Пробвай с файл със съдържание:

1
2
3
4
5

и ще се увериш сам :)

The last good thing written in C was Franz Schubert's Symphony No. 9.
Отговор
в отговор на | #17

Re: awk скрипт

хаха е видях че е малоумен и го обръща , как да не го обръща е въпроса

Отговор
в отговор на no3vil #18

Re: awk скрипт

Защо се занимаваш с неща, от които не разбираш? :)

The last good thing written in C was Franz Schubert's Symphony No. 9.
Отговор
в отговор на | #19

Re: awk скрипт

Ами не съм се родил научен :) Не можеш ли да обясниш къде ми е грешката вместо да водим по-малоумни и от скрипта ми спорове :)

Отговор
в отговор на no3vil #20

Re: awk скрипт

Грешката ти е, че се опитваш да използваш awk за нещо, за което не е удобен.

The last good thing written in C was Franz Schubert's Symphony No. 9.
Отговор