Shell script: дополнить файл, shupa, 12-Мрт-14, 17:19 [смотреть все]Добрый день, господа и дамы.Сразу к делу: Есть 2 файла - 1.txt, 2.txt. В файлах есть текст 1.txt text1 пустая строка text2 пустая строка remove1 2.txt пустая строка text3 пустая строка text4 remove2 Требуется скрипт, который дополнит и заменит совпадающие строки в 2.txt контентом из 1.txt. Т.е. результирующий выход следующий: 2.txt text1 text2 text3 text4 remove1 Задача простая, но мои познания в скриптинге крайне не велики. Заранее спасибо.
|
- Shell script: дополнить файл, Andrey Mitrofanov, 19:57 , 12-Мрт-14 (1)
> Задача простая, но мои познания в скриптинге крайне не велики. Заранее спасибо. awk 'BEGIN{while(getline a <"1.txt" && getline a <"2.txt")print a,b}' или *типа* того.
- Shell script: дополнить файл, михалыч, 21:44 , 12-Мрт-14 (2)
Ударим perl'ом по бездорожью perl -e '@a=`cat 1.txt`;@b=`cat 2.txt`;for($i=0;$i<@b;$i++){if($b[$i]eq"\n"){$b[$i]=$a[$i]}}print@b'
- Shell script: дополнить файл, михалыч, 06:11 , 13-Мрт-14 (3)
Если как в первом варианте perl -e '@a=`cat 1.txt`;@b=`cat 2.txt`;for($i=0;$i<@b;$i++){if($b[$i]eq"\n"){$b[$i]=$a[$i]}}print@b'text1 text3 text2 text4 remove2 Наверное надо было так perl -e '@a=`cat 1.txt`;@b=`cat 2.txt`;for($i=0;$i<@a;$i++){if($a[$i]eq"\n"){$a[$i]=$b[$i]}}print@a' text1 text3 text2 text4 remove1 или ещё и сортировку нужно?
- Shell script: дополнить файл, ACCA, 07:28 , 13-Мрт-14 (4)
> или ещё и сортировку нужно?А забрать оба файла через while(<>) и свалить в хеш, а потом объединить два хэша - не? Хотя давеча такой подход сожрал 20G памяти...
- Shell script: дополнить файл, pavlinux, 21:33 , 15-Мрт-14 (5)
|