Author Topic: Помогите написать скрипт в несколько строк.  (Read 5726 times)

0 Members and 1 Guest are viewing this topic.

Offline Martin

  • Newbie
  • *
  • Posts: 18
  • Karma: +0/-0
Помогите пожалуйсто написать небольшой скрипт. Никак не получается    

Для заданных файлов (вводятся с клавы) заменить строку с заданным номером (тоже с клавы) на другую строку (тоже с клавы).

Если по простому:
1. Все файлы (имя с клавы).
2. Заменить строку с номером $n (введено с клавы) на другую строку $s (тоже от пользователя).

Заранее благодарен!

Offline never hood

  • Hero Member
  • *****
  • Posts: 845
  • Karma: +16/-10
  • www.4job.co
    • Работа, которую ты искал
Quote from: Martin
Если по простому:
1. Все файлы (имя с клавы).
2. Заменить строку с номером $n (введено с клавы) на другую строку $s (тоже от пользователя).
в один проход, без применения head/tail:
Code: [Select]
#!/bin/bash

echo -n Enter file name:
read fname
echo -n Enter row number:
read num
echo -n Enter rot to be placed instead of deleted one:
read row

x=1
# Для всех файлов в каталоге использовать
# for file in $path; do
#       все, что ниже после cat
# done
cat $fname | \
while read line; do
     if [ $x == $num ]; then
           echo $row
     else
           echo $line
     fi
     x=$[$x+1]
done

PS. Рекомендуется добавить проверку вводимых данных...