Заполнить пустую ячейку в канале -разделенный -файл значений текстом по умолчанию

То же, что и:curl --silent --show-error

Страница руководства пытается сообщить вам, что эти параметры должны использоваться вместе. Это означает

Run curl in silent mode, and show no output unless there is an error.

Обратите внимание, что Sнельзя использовать ни с какими другими параметрами, а sможно использовать без S. Эти параметры наиболее полезны в сценариях оболочки.

Пример:(Псевдокод)

do while displayInputPrompt
    fetch_data();

fetch_data()
curl -sS http://www.example.com/path/to/some/tar/file/file.tar.bz2

Обратите внимание, что в этом примере пользователь не увидит никаких выходных данных во время выборки данных. Пользователь увидит только подсказку ввода, отображаемую в функции displayInputPrompt, если нет ошибки, при которой curl выведет ошибку на stdout, то есть на ваш экран.

1
12.01.2021, 11:48
1 ответ

Ваша команда sedвыглядит нормально, и она работает, если я попробую ее с вашим примером ввода.

В качестве общей альтернативы для синтаксического анализа файлов, разделенных конвейером -, или форматированных значений общей таблицы -, я бы рекомендовал awk. Кажется, вы хотите заменить «пустые» столбцы на 00000000000. Для этого вы можете использовать

awk 'BEGIN{FS=OFS="|"} {for (i=1;i<=NF;i++) {if ($i=="") $i="00000000000"}} 1' filename
  • Это сначала даст указание awkучитывать |разделитель полей для ввода и вывода,(FSявляется разделителем полей ввода, OFSявляется разделителем полей вывода.
  • Затем он перебирает все поля (= столбцы )строки, и если он находит пустое поле, устанавливает его значение в 00000000000вместо ($i, ссылаясь на «номер поля. iтекущей строки", а NFявляется автоматически сгенерированной -переменной, содержащей количество полей ).
  • В итоге будут напечатаны все строки, включая возможные модификации (кажущиеся случайными 1в конце)

Вы также можете легко ограничить это, чтобы применить только к полю nr. 2, если вы хотите по-другому обрабатывать другие пустые столбцы:

awk 'BEGIN{FS=OFS="|"} {if ($2=="") $2="00000000000"} 1' filename
3
18.03.2021, 22:37

Теги

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