Что делают задние скобки в этом коде сценария bash? - PullRequest
0 голосов
/ 01 июня 2019

так что я делаю проблему с bashscript, вот этот: ./namefreq.sh ANA должна вернуть список из двух имен (в отдельных строках) ANA и RENEE, оба из которых имеют частоту 0,120.

В основном у меня есть файл из table.csv, показанный в коде ниже, с именами и номером частоты рядом с ними, например, Анна, 0,120

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

grep сравнивает слово (-w), введенное пользователем (./bashscript.sh Анна), со значением (a), которое затем использует команду cut дляв состоянии сравнить 2-е поле строки, разделенной разделителем ",", которая является частотой из файла table.csv, а затем |cut -f1 -d "," печатает первые поля, имена которых имеют одинаковую частоту

^ это будет правильно?

спасибо:)

#!/bin/bash
a=`grep -w $1 table.csv  | cut -f2 -d','`
grep -w $a  table.csv | cut -f1 -d',' | sort -d

1 Ответ

0 голосов
/ 01 июня 2019

Когда команда указана в обратном токе или $(), вывод команды заменяется на команду вместо нее. Так что если файл имеет Anna,0.120

a=`grep -w Anna table.csv  | cut -f2 -d','`

выполнит команды grep и cut, которые выведут 0.120, поэтому будет эквивалентно

a=0.120

Затем команда ищет все строки, соответствующие 0.120, извлекает первое поле с помощью cut и сортирует их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...