Пытаюсь создать электронную таблицу файлов .yaml в папке, включая args

Вы ошибаетесь: Если вы находитесь на UNIX, где интерфейс nice() все еще имеет смысл, NZERO является значением nice по умолчанию, а NZERO равно 20.

Чтобы было понятнее: вы спрашивали о команде nice и в то же время упомянули абсолютные уровни, но команда nice не управляет абсолютными значениями, а увеличивает относительно текущего уровня. В случае состояния по умолчанию, уровень nice равен NZERO, что равно 20.

Значениями nice являются 0..2*NZERO-1 или 0..39

Обратите внимание, что хотя стандартный планировщик UNIX все еще может сделать что-то полезное со значением nice, это не имеет смысла, если вы используете специализированный планировщик, например, планировщик реального времени.

1
23.02.2018, 21:42
2 ответа

Eche un vistazo a yq , que es el contenedor YAML -para jq.

0
28.01.2020, 00:39

Para un archivo:

res=$(echo 'args:

- {arg: file_name, value: "testfile"}

- {arg: url, value: "fakesite.com"}' | egrep "file|url")
echo $res
- {arg: file_name, value: "testfile"} - {arg: url, value: "fakesite.com"}

Es posible que deba reducir el patrón grep para reducir los falsos positivos:

egrep -- "- \{arg: (file_name|url), value: ")

Por lo tanto, la recopilación de los nombres de los archivos se puede hacer con find o con un directorio plano solo con un bucle for. ¿No tiene espacios en blanco en los nombres de archivo o caracteres divertidos?

for f in *.yaml; do res=$(egrep -- "- \{arg: (file_name|url), value: " $f); echo $res; done > yaml.csv 
cat yaml.csv 
- {arg: file_name, value: "testfile"} - {arg: url, value: "fakesite.com"}
- {arg: file_name, value: "testfile"} - {arg: url, value: "fakesite.com"}

O mejor legible

for f in *.yaml
do 
  res=$(egrep -- "- \{arg: (file_name|url), value: " $f)
  echo $res
done > yaml.csv 

A partir de ahí, debería ser solo un paso.

0
28.01.2020, 00:39

Теги

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