tar-файлы, за исключением файлов с заданным шаблоном

Поскольку данные представляют собой правильно отформатированные данные CSV, мы можем использовать парсер CSV:

$ csvformat -d '|' file | tr '|' ' ' | csvformat -D '|'
col1|col2|col3|col4|col5|col6|col7|col8|col9|col10
value1|value2|value3|value4|value5|value6|value7 text|value8|value9|value10

При этом используется csvformatиз csvkit для переформатирования данных с разделителями|-в данные с разделителями-запятыми -. Затем trиспользуется для замены всех оставшихся символов вертикальной черты пробелами. В конце снова используется csvformatдля переформатирования данных с разделителями-запятыми -в формат с разделителями |-.

Обратите внимание, что csvformatбудет добавлять двойные кавычки к полям только в случае необходимости, или если используется -U 1(, и в этом случае он будет заключать двойные кавычки во все поля ).

1
13.04.2021, 14:41
1 ответ

Спасибо @Kusalananda за комментарий, я могу использовать опцию --exclude, доступную в GNU tar:

Чтобы исключить все в любом каталоге с именем x(, но не в самом каталоге):

tar cf a.tar --exclude='x/*' a

Чтобы исключить каталог xи все, что под ним (, но обратите внимание, что это также исключает любые обычные файлы с именем x):

tar cf a.tar --exclude='x' a
2
28.04.2021, 22:52

Теги

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