У меня тоже вопрос назрел. Есть команда find -name "*.txt" -type f -exec cp --backup=numbered '{}' /media/test/ \; Она находит все файлы с расширением txt в текущем каталоге и копирует в указанный мною (/media/test/). Далее в каталоге /media/test/ использую cat * > all.txt для объединения всех файлов один. Собственно вопрос, как передалать первую команду чтобы она находила все .txt файлы и не копировала по одному в /media/test/, а сразу объединяла в один общий файл /media/test/all.txt ?
Так: sed 's/^["\t]*//' /input.txt > output.txt удалить кавычки в начале sed 's/["\t]*$//' /input.txt > output.txt удалить кавычки в конце sed 's/^["\t]*//;s/[ \t]*$//' /input.txt > output.txt удалить кавычки в начале и конце
Скорее всего, там проблема в пробелах в именах файлов. Можно так find . -name "*.txt" -type f -exec cat {} \; > /media/test/all.txt Я не уверен, что понял правильно, но если задача стоит так - Удалить кавычки в начале и конце строки, если в строке нет пробелов. perl -pe 's/^"(.+)"$/$1/e unless / /' file.txt
Необходимо удалить знак " у строк у которых знак " стоит и в начале и в конце, а у строк у которых знак " стоит в начале или вконец оставить . То есть у "123456" удалить кавычки а у строк "оаовлвь или аллалал" оставить кавычки
не работают оба варианта пример паролей в словаре "123456" "вася123 максим321" надо чтобы получилось 123456 "вася123 максим321" в первом пароле убрать кавычки а в остальных оставить
и еще - если текстовый файл виндовый, не работает... нужно удалить возврат каретки - tr -d '\r' < 1.txt > bezCR.txt
Товарищи такой вопрос. Есть файл со множеством строк, допустим 1.txt содержащий: dsfdsgdfghh dfdsfdgd sdfsgdgd sdgdfsgfgdthbt test 123456 12345 dsfsdgfdfg sdfsdgdfghdh test 654321 54321 Как вытащить строку test и 2 строки идущие ниже? Т.е. на выходе должно получиться так: test 123456 12345 test 654321 54321 В идеале нужно чтобы было вот так, либо через пробел, либо через любой разделитель: test 123456 12345 test 654321 54321 Копаю в сторону grep, но что-то ничего в голову не приходит.
grep -A2 test file.txt perl -ne 'BEGIN {$s="test"; @v};s/[\r\n]+$//;push @v,$_;if(@v==4){shift @v;print join(" ", @v)."\n" if $v[0]=~/$s/}' file.txt
можно еще так: cat 1.txt | xargs | egrep -o 'test [^ ]+ [^ ]+' > 2.txt для больших файлов xargs не подходит лучше так: cat 1.txt | tr '\n' ' ' | egrep -o 'test [^ ]+ [^ ]+' > 2.txt
Не работает( Вывод первой команды xargs: непарные кавычки одинарная; по умолчанию, кавычки являются спецсимволами для xargs, если вы не указали параметр -0 Вторая вообще ничего не выводит. Но в любом случае спасибо, что потратили время. Решение нашёл.