Рейтинг:0

Как сделать запятую переменной в сценарии оболочки

флаг in

Я написал скрипт, чтобы проверить выход из файла, затем проверить, есть ли в этом файле строка, и, наконец, напечатать эту строку, вот это

#!пользователь/бен/баш
эхо "$1 $2"
если [-е "$1"]; тогда
    если [ "$(wc -l "$1")" -ge 1 ]; тогда
        sed -n "1p" "1$"
    фи
фи

Но он возвращает ошибку, например Недопустимый номер: 3 /home/k/Documents/text.txt

Мой вопрос в том, как сделать wc -l "$1" как переменная?

Рейтинг:3
флаг hr

Выход по умолчанию wc -l файл включает имя файла, а также количество.

$ wc -l файл
8 файл

В качестве обходного пути вы можете перенаправить содержимое файла на туалет -л через стандартный поток ввода оболочки:

$ wc -l < ​​файл
8

Так

если [ "$(wc -l < ​​"$1")" -ge 1 ]; тогда
    sed -n "1p" "1$"
фи
флаг in
Спасибо, работает!!
Рейтинг:1
флаг tr
ash

Оставьте только первое поле в Туалет вывод. Awk — мой любимый инструмент для этого:

wc -l "$1" | awk '{напечатать $1}'

Чтобы зафиксировать это в переменной:

COUNT="$(wc -l "$1" | awk '{print $1}')"
флаг in
Спасибо за ваш ответ

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.