На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random, Модераторы разделов
-
nerve
- Сообщения: 280
- ОС: OpenBSD
Сообщение
nerve »
допустим файл выглядит так:
Код: Выделить всё
|1|2|text|file1.txt, file2.txt, file3.txt|
|2|2|text|file4.txt, file2.txt, file3_.txt|
|3|2|text|file5.txt, file8.txt, file9.txt|
|4|2|text|file6.txt, file7_.txt, file3_.txt|
файлы с нижним подчеркиванием надо поместить перед остальными и отделить их точкой с запятой от остальных
Код: Выделить всё
|1|2|text|file1.txt, file2.txt, file3.txt|
|2|2|text|file3_.txt; file4.txt, file2.txt|
|3|2|text|file5.txt, file8.txt, file9.txt|
|4|2|text|file7_.txt, file3_.txt; file6.txt|
-
Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Сообщение
Bizdelnick »
Что-то Вы ИМХО зачастили с подобными вопросами... За 10 WME сделаю.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще | в течение (часа)
новичок
нюанс
по умолчанию | приемлемо
проблема
пробовать
трафик |
-
nerve
- Сообщения: 280
- ОС: OpenBSD
Сообщение
nerve »
Shell
$ cat text
|1|2|text|file1.txt, file2.txt, file3.txt|
|2|2|text|file4.txt, file2.txt, file3_.txt|
|3|2|text|file5.txt, file8.txt, file9.txt|
|4|2|text|file6.txt, file7_.txt, file3_.txt|
$ ./p.sh
$ cat newtext
|1|2|text|file1.txt, file2.txt, file3.txt|
|2|2|text|file3_.txt; file4.txt, file2.txt|
|3|2|text|file5.txt, file8.txt, file9.txt|
|4|2|text|file7_.txt, file3_.txt; file6.txt|
$ cat p.sh
#!/bin/bash
L=`grep -n "_." text | awk -F: '{print $1}' | xargs`
for F in $L
do
safepart=`sed -n "${F}s/file.*//p" text`
sed -n "${F}p" text | awk -F"|" '{print $5}' | xargs -n1 > file1
top=`grep "_." file1`
down=`grep -v "_." file1`
echo "$safepart$top; $down|" > file2
newline=`tr '\n' ' ' < file2`
sed -i "${F}c\\${newline}" text
sed 's/,|/|/' text > newtext
done