парсить пути linux как столбцы в файле .csv bash

Также можно использовать команду find :

find `pwd` -name '*info*' -type f

Remove -type f , которая ограничивает список только файлами, если также требуется включить каталоги.

-121--174239-

Во второй ссылке, где говорится

, распределитель памяти получает большой объем памяти (скажем, 4 страницы или 4 * 4 KiB) и делит его на гораздо меньшие фрагменты

«распределитель памяти» - это не ядро, а процедуры libc, такие как malloc.

Ядро выделяет памяти процессу в фрагментах размера страницы. malloc отслеживает используемые и неиспользуемые части этих страниц по запросу приложения и освобождает их.

-121--97600-

Lynx имеет два набора ключевых привязок:

  • Есть обычные командные привязки, которые можно увидеть с помощью клавиши k (или K ) (см. документация ).
  • также имеются привязки «line edit» (см. документация ). Они применяются к текстовым полям. Однако если внешний редактор настроен с помощью меню «Параметры», то ^ Xe ( control X e ) запускает редактор в выбранном текстовом поле.

Вы можете заметить в списке от k , что он связан с KEYMAP . Аналогичным образом можно настроить Lynx для привязки ключа к списку EDITMAP , показывая используемые привязки.

0
27.10.2018, 18:27
5 ответов

Обратите внимание, что это загорится, если какое-либо из имен файлов содержит ,или /в них:

$ awk -F "[/,]" -v OFS="," 'BEGIN { print "LB", "-PROJ--", "FILENAME----", "USER--", "DATA-----", "TIME---", "STATUS" }NR!=1{print $4,$5,$7,$8,$9"/"$10"/"$11,$12,$13}' input
LB,-PROJ--,FILENAME----,USER--,DATA-----,TIME---,STATUS
app,app_pit,HUB_TEST.apx,uJones,4/24/2018,5:55:58,OK
app,app_pit,test_acqit1.apx,uSmith,3/8/2018,10:16:41,OK
app,app_pit,test_bkfs.apx,uHarry,/26/2018,9:47:03,OK
0
28.01.2020, 02:31

Игнорирование заголовка и предположение, что текст в файле не имеет пробелов в начале строки (в вашем вопросе):

$ sed -e 's@/Proj/abc/\([^/]*\)/\([^/]*\)/conf/@\1,\2,@' file
-------------PATH AND FILE NAME--------,USER--,DATE-----,TIME---,STATUS
app,app_pit,HUB_TEST.apx,uJones,4/24/2018,5:55:58,OK
app,app_pit,test_acqit1.apx,uSmith,3/8/2018,10:16:41,OK
app,app_pit,test_bkfs.apx,uHarry,/26/2018,9:47:03,OK

Команда sedзахватывает строки appи app_pit(, которые, как я предполагаю, могут различаться ), и заменяет путь в исходных данных этими запятыми в -между ними, оставляя последний бит пути как собственное поле.

Перенаправьте это в новый файл, а затем исправьте заголовок (, если необходимо ).

1
28.01.2020, 02:31

Awkрешение:

awk 'BEGIN{ FS = OFS = "," }
     NR == 1{ $1 = "LB,-PROJ---,FILENAME----" }
     NR > 1{
         gsub("/(Proj/abc/|conf)", "", $1);
         gsub("/", ",", $1)
    }1' file

Выход:

   LB,-PROJ---,FILENAME----,USER--,DATE-----,TIME---,STATUS
   app,app_pit,HUB_TEST.apx,uJones,4/24/2018,5:55:58,OK
   app,app_pit,test_acqit1.apx,uSmith,3/8/2018,10:16:41,OK
   app,app_pit,test_bkfs.apx,uHarry,/26/2018,9:47:03,OK
0
28.01.2020, 02:31
sed -e 's|-------------PATH AND FILE NAME--------,USER--,DATE-----,TIME---,STATUS|LB,-PROJ---,FILENAME----,USER--,DATE-----,TIME---,STATUS|' -e 's|/Proj/abc/||g' -e 's|/conf||g' -e 's|/|,|2' -e 's|/|,|1' file

Просто расширенный набор замен потока.

Первая изменяет первую строку так, чтобы она начиналась со строки, начинающейся с LB, которую вы хотите.

Второй удаляет /Proj/abc/.

Третий удаляет /conf.

Четвертая и пятая заменяют 2-ю и 1-ю косую черту запятыми.

Выход:

LB,-PROJ---,FILENAME----,USER--,DATE-----,TIME---,STATUS
app,app_pit,HUB_TEST.apx,uJones,4/24/2018,5:55:58,OK
app,app_pit,test_acqit1.apx,uSmith,3/8/2018,10:16:41,OK
app,app_pit,test_bkfs.apx,uHarry,/26/2018,9:47:03,OK
1
28.01.2020, 02:31

РЕШЕНО!

    sed -e 's|-------------PATH AND FILE NAME--------,USER--,DATE-----,TIME---,STATUS|LB,-PROJ---,FILENAME----,USER--,DATE-----,TIME---,STATUS|' -e 's|/Proj/abc/||g' -e 's|/conf||g' -e 's|/|,|2' -e 's|/|,|1' file

Спасибо, Насир Райли, ваше решение sed сработало безупречно!!

0
28.01.2020, 02:31

Теги

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