Практика Linux Сценарии оболочки - PullRequest
0 голосов
/ 23 января 2020

Мое домашнее задание - написать сценарий оболочки для чтения «log.txt» и построчно отображать его комментарии. Перед каждой строкой должен стоять номер строки.

Сценарий, который у меня есть на данный момент:

path="/home/user/log.txt"
while i=read -r line
do
   echo "$line"
done < "$log_file"

Входной файл:

How are you
Where are you

Ожидаемый результат:

1. How are you
2. Where are you

Ответы [ 3 ]

0 голосов
/ 19 февраля 2020

в python 3,8 это сработало

count = 0 with open("log.txt") as file_in: lines = [] for line in file_in: lines.append(line) print('{} {}'.format(count, line)) count +=1

0 голосов
/ 19 февраля 2020

Не шеллскрипт, но некоторые утилиты / программы могут это сделать.

grep -n . logfile.txt

cat -n logfile.txt

awk '{print NR" "$0}' logfile.txt

и многие другие ...

Вот один из них, использующий bash.

#!/usr/bin/env bash

n=0

while IFS= read -r line; do
  printf '%d. %s\n' "$n" "$line"
  ((n++))
done < logfile.txt
0 голосов
/ 24 января 2020

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

Также обратите внимание на исправления, чтобы установить log_file, обновить до команды read.

log_file="/home/user/log.txt"
line_no=0
while read -r line
do
   line_no=$((line_no+1))
   printf "%d. %s\n" $line_no "$line"
done < "$log_file"

Одной альтернативой для рассмотрения является вызов утилиты nl, которая выполняет точную задачу.

...