LINUX.ORG.RU

рандомно добавить строки в файлы?

 


0

1

Есть рабочая команда

 for file in $(ls)
  do echo "text1
text2" >> $file
  done

Подскажите пож,сделать так чтоб добавлялось при каждом разе всегда в разные строки (файлов N колличество)



Последнее исправление: harackter (всего исправлений: 2)

Эта команда нерабочая, хотя может казаться, что рабочая, пока не попались файлы с пробелами в именах.

А вопрос сформулирован так, как будто тебе нужно что-то совсем другое.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)

Конечно, можно вывернуться и накостылять подобное на баше, но зачем, когда есть нормальные языки, для которых такие извращения — штатная ситуация.

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

Полная версия скрипта,писал сам )


#!/bin/bash

  if [ -f "$1" ]; then
  mkdir -p My_file
  split -l 250000 "$1" --additional-suffix=.txt | sleep 0.5 && mv x* My_file
  sleep 0.5
  cd My_file && x=1; for i in * ; do mv $i $x;x=$(($x+1)); done
  sleep 0.5

   for file in $(ls)
   do echo "text1
text2" >> $file
   done

  
  mkdir TMP
  else
    echo "Укажите путь к файлу.." >&2
    exit 1
  fi

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

И зачем ты нарезаешь большой файл на мелкие кусочки, а затем добавляешь туда строки?

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

Неполная версия скрипта, писал сам!

$ cat 1.sh 
#/bin/bash

declare -a zf
declare -a zr

IFS=$'\n'

zf=(`find * -maxdepth 0 -type f`)
NNN=${#zf[@]}

zr=(`shuf -i1-250000 -n${NNN}`)

i=0
while [ $i -lt $NNN ]
do
sed -i "${zr[${i}]}s/$/txt1\ntxt2/" ${zf[${i}]}
i=$((${i}+1))
done

justAmoment ★★★★★
()

Учи уроки сам, двоечник!

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