объединить текст файла с именем файла

Сам pgrep возвращает идентификаторы процессов. Используйте:

     $pgrep <process_name>


     $pgrep bash
     3896
     4013
     4115

Если вы хотите сохранить вывод в переменной:

   var1=`pgrep <appname>`


  pids=`pgrep bash`
  echo $pids
  3896 4013 4115
5
21.08.2017, 12:35
3 ответа

Это довольно тривиально сawk:

$ awk '{print $0,FILENAME}' File*.txt
Apple File1.txt
Orange File1.txt
Banana File1.txt
monday File2.txt
tuesday File2.txt
wednesday File2.txt

Если вам нужна табуляция, а не пробел между строкой ввода и именем файла, добавьте -v OFS='\t'в строку команды -, чтобы установить разделитель полей вывода (OFS):

awk -v OFS='\t' '{print $0,FILENAME}' File*.txt

или используйте:

awk '{print $0 "\t" FILENAME}' File*.txt

Предполагается, что имена файлов не содержат =символов. Если вы не можете гарантировать, что имена файлов не будут содержать символы =, вы можете изменить это на:

awk '{print $0 "\t" substr(FILENAME, 3)}'./File*.txt

Хотя с GNU awk, по крайней мере, вы затем получите предупреждения, если имя файла содержит байты, не образующие допустимые символы (, которые можно обойти, установив локаль наC(с помощьюLC_ALL=C awk...)хотя это также может иметь побочный эффект потенциального изменения языка других сообщений об ошибках, если таковые имеются ).

14
27.01.2020, 20:31

Сperl:

perl -lpe '$_.= "\t$ARGV"' File*.txt

(обратите внимание, что это нормально с глобусом вроде File*.txt, но может быть опасным с другими).

3
27.01.2020, 20:31

Для интерактивного использования в командной строке проще всего ввести

grep. File*.txt

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

Отлично подходит для использования -в таких случаях, как проверка некоторых настроек ядра, которые хранятся с одной настройкой на файл:

$ grep. /sys/kernel/mm/transparent_hugepage/*
/sys/kernel/mm/transparent_hugepage/defrag:[always] defer defer+madvise madvise never
/sys/kernel/mm/transparent_hugepage/enabled:[always] madvise never
/sys/kernel/mm/transparent_hugepage/hpage_pmd_size:2097152
grep: /sys/kernel/mm/transparent_hugepage/khugepaged: Is a directory
/sys/kernel/mm/transparent_hugepage/shmem_enabled:always [within_size] advise never deny force
/sys/kernel/mm/transparent_hugepage/use_zero_page:1
2
27.01.2020, 20:31

Теги

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