Shell - изменение вывода команды find

Кажется, у меня огромная мазохистская серия, в которой я написал парсер JSON. Он преобразует документ JSON в таблицу списков SQL Adjacency, которая проста в использовании для обновления таблиц данных. На самом деле, я сделал хуже, в том, что я сделал код для обратного процесса, который должен перейти из таблицы иерархии в строку JSON

. Статья и код здесь: Использование json-строк в SQL-сервере .

Select * from parseJSON('{
  "Person":
  {
     "firstName": "John",
     "lastName": "Smith",
     "age": 25,
     "Address":
     {
        "streetAddress":"21 2nd Street",
        "city":"New York",
        "state":"NY",
        "postalCode":"10021"
     },
     "PhoneNumbers":
     {
        "home":"212 555-1234",
        "fax":"646 555-4567"
     }
  }
}
')

Чтобы получить:

blockquote>

0
задан lurker 19 March 2019 в 01:39
поделиться

1 ответ

По умолчанию, как вы видели, find печатает полные пути:

$ find /home/people/name -type f
/home/people/name/filename1.txt
/home/people/name/filename3.txt
/home/people/name/filename2.txt

find, однако, предлагает контроль над выводом, используя -printf. Чтобы получить только имя файла без пути, попробуйте:

$ find /home/people/name -type f -printf '%f\n'
filename1.txt
filename3.txt
filename2.txt

%f говорит find, что вы хотите имя файла без пути. \n сообщает find, что вы хотите новую строку после каждого имени файла.

Вывод, конечно, может быть сохранен в файл:

$ find /home/people/name -type f -printf '%f\n' >output.txt
$ cat output.txt
filename1.txt
filename3.txt
filename2.txt
0
ответ дан John1024 19 March 2019 в 01:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: