Поддержка smartd.conf сервера NAS

#!/bin/bash
IFS=','
while read foo bar baz waldo fred qux
do
    echo $qux','$foo','$waldo','$fred','$bar','$baz
done

объяснение:

Это сценарий оболочки bash. Это может работать с другими оболочками.

IFS — это переменная среды, которая содержит разделитель полей.
Установите IFS в качестве символа запятой.

Оператор while перебирает все строки ввода.

Функция чтения разделяет строку ввода с помощью IFS (запятой )на несколько переменных.

Строка do является частью структуры оператора while. Каждая строка между «do» и «done» повторяется для каждой строки ввода.

Команда echo создает выходные данные. Для каждой строки ввода мы распечатываем содержимое переменных, заполненных 'read', в желаемом порядке, разделенных запятыми.

Таким образом, эти операторы работают с каждой строкой ввода, разделяя каждую строку на несколько полей, а затем объединяя строку с полями в другом порядке.

Одна потенциальная проблема заключается в том, что если в поле данных есть встроенная запятая, то он недостаточно умен, чтобы понять это.

Если вы сохраните этот сценарий оболочки в файле (, например X.sh ), затем вы должны отправить свой файл CSV в качестве стандартного ввода (stdin )и сохраните переупорядоченный вывод CSV в новый файл.

кошка mycsv.txt | X.sh > newcsv.txt

0
12.03.2021, 01:33
0 ответов

Теги

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