LINUX.ORG.RU

В толксах?
Яззабан!

CYB3R ★★★★★ ()

paste -d ',' input.txt input.txt > output.txt

Spoofing ★★★★★ ()
Ответ на: комментарий от theNamelessOne

Естественно, если рассматривать формат приведенного файла не буквально, то нужно изменить класс символов и/или добавить квантификацию

theNamelessOne ★★★★★ ()

Иногда, когда не хочется возиться со скриптами, в этом может помочь OOo Calc.

Sadler ★★★ ()
 - Пуск -> выполнить -> notepad.exe
 - Файл -> открыть -> Имя файла с кириллицей и пробелами(1).txt
 - Для каждой строчки сделать следующее:
     - Выделить текст мышкой
     - Правка -> копировать
     - Напечатать ',' (без кавычек)
     - Правка -> вставить
 - Файл -> сохранить
 - Файл -> закрыть
DELIRIUM ☆☆☆☆☆ ()
Последнее исправление: DELIRIUM (всего исправлений: 1)
Ответ на: комментарий от DELIRIUM

А не запаритесь, если строчек миллионов десять? Да и notepad ваш скорее сдохнет, чем сумеет отобразить такой файл.

Sadler ★★★ ()
Ответ на: комментарий от DELIRIUM
    - Выделить текст мышкой
    - Правка -> копировать
    - Напечатать ',' (без кавычек)

Так выделенный текст же замениться на запятую. Не работает.

Xenon ★★★ ()
Ответ на: комментарий от DELIRIUM

Какой патч, тут налицо принципиальный недостаток by design! Надо бы Поттерингу показать, он сумеет помочь.

quiet_readonly ★★★★ ()
Ответ на: комментарий от DELIRIUM

Да, пожалуй, это будет лучше всего. Только после «Правка->копировать» нужно добавить ещё «Правка->Вставить», чтобы выделение снять.

Miguel ★★★★★ ()
$ cat file1 | while read A ; do echo "$A,$A" ; done > file2

file1 - исходный файл, file2 - результирующий

Kroz ★★★★★ ()
function func 
{
    local line

    while read line; do
        printf '%s,%s' "$line" "$line"
    done
}

cat file.txt | func > out.txt
nexfwall ★★★★ ()
Ответ на: комментарий от nexfwall

если уж на то пошло, то

f = File.new('input.txt', 'r+')
f.readlines.each do |l|
        puts l.sub(/(\w+)/, '\1, \1')
end
Кстати, ставлю носки, что можно написать раза в три короче. Кто сделает? На руби, ясно дело.

cdshines ★★★★ ()
Ответ на: комментарий от nexfwall

Я имею в виду, что я сразу рабочий наговнякал, а твое непонятно куда еще прицепить.

cdshines ★★★★ ()
Ответ на: комментарий от nexfwall

ruby -pi.bak -e «sub(/(\p{Any}+)(?=\n)/, '\1, \1')» test.txt

Памагите с регуляркой, эта выглядит, как говно, и наверняка не работает на всем множестве случаев.

cdshines ★★★★ ()
Ответ на: комментарий от cdshines

Ну если короче, использовать надо так:

cat file.txt | perl -e 'print($_,',',$_) while (<>);' > out.txt
Или так:
perl -e 'print($_,',',$_) while (<>);' file.txt > out.txt

А если подробнее, то <> это пустой файловый дескриптор, в который perl автоматически подставляет файлы указанные в аргументах, а после (или сразу, если аргументов нету) подставляет STDIN. Все это в цикле while, который спокойно берет одну строку и вставляет в «стандартную переменную» _ . Данный кусок полностью аналогичен тому, что я представил на bash.

P.S. Это был ответ на тот комментарий, который ты удалил. Так уж и быть, оставлю

nexfwall ★★★★ ()
Ответ на: комментарий от cdshines

А регулярку то зачем? Просто читай строку, и дублируй через запятую. Да и в регулярках не силён.

nexfwall ★★★★ ()
Ответ на: комментарий от nexfwall

Я удалил, потому что он оставлял только запятые, потому что я забыл скобки:/ И вообще, регулярные выражения в руби медленнее прямой работы со строками, особенно на больших объемах, поэтому я попробую ради интереса сделать без них.

cdshines ★★★★ ()
Ответ на: комментарий от cdshines

В Ruby нет функции print? Ну на крайняк printf? Как это так?

nexfwall ★★★★ ()
$ echo -e 'as\ndf\ngh' |sed -r 's/.+/&,&/'
as,as
df,df
gh,gh
tides ()
Ответ на: комментарий от nexfwall
ruby -pi.bak -e 'print($_.chomp,", ")' test.txt

На больших файлах должно быть вроде быстрее, чем с регулярками.

cdshines ★★★★ ()

perl -pe'$_.",".$_' <file1 >file2

AITap ★★★★★ ()
Ответ на: комментарий от nexfwall

Да чего уж там...

+[->,----------]<--<[+++++++++++<]>[.>]++++++++++++++++++++++++++++++++++++++++++++.--------------------------------------------<[<]>[.>]

Kalashnikov ★★★ ()
$ echo 'a
b
c
d' | sed 's/.*/&,&/'
a,a
b,b
c,c
d,d

тему не читал

drBatty ★★ ()
Ответ на: комментарий от cdshines

Кто сделает? На руби, ясно дело.

давайте уж на C++. Напишем свою либу для работы со строками, чё уж там?

drBatty ★★ ()
Ответ на: комментарий от drBatty

sed 'h;G;s/\n/,/'

такой вариант у меня работает чуть ли не быстрее.

anarquista ★★★★★ ()
Ответ на: комментарий от drBatty

А какая разница? Я увидел скрипт на 4 строчки, поэтому и написал. Не вижу принципиальной разницы)

cdshines ★★★★ ()
Ответ на: комментарий от zolden

h добавляет найденное в hold buffer, а G добавляет его содержимое к pattern buffer, получается, что нужно только заменить перевод на запятую, так?

cdshines ★★★★ ()
Ответ на: комментарий от anonymous

Еще немного укоротил. perl -ple 's/(.*)/$1$1\n/' fileName
Perl-golf'a тред.

anonymous ()
Ответ на: комментарий от anonymous

perl -pe 's/(.*)/$1$1/' testLol Вот финальная версия.

anonymous ()
Ответ на: комментарий от AITap

это не будет работать. вот так правильно:

perl -pe's/.*/$&,$&/' <in >out

chg ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.