Как разделить один столбец на несколько столбцов в CSV-файле

Сокет - это файл для обмена данными между процессами. Вы можете увидеть больше данных о нем с помощью команд netstat, lsof и fuser.

Из Википедии : https://en.wikipedia.org/wiki/Unix_domain_socket

"Доменный сокет Unix или IPC-сокет (межпроцессный коммуникационный сокет) - это конечная точка обмена данными между процессами, выполняющимися на одном и том же хосте операционной системы. Как и именованные трубы, сокеты домена Unix поддерживают передачу надежного потока байтов (SOCK_STREAM, сравните с TCP)."

.

0
05.07.2018, 21:37
3 ответа

В стандартной оболочке:

$ path=/aaa/bbb/ccc/ddd/eee/fff.txt
$ tail="${path#/*/*/}"
$ head="${path%/$tail}"
$ echo "$head" "$tail"
/aaa/bbb ccc/ddd/eee/fff.txt

"${path#/*/*/}"— это значение path, но с удаленной (кратчайшей )ведущей частью, соответствующей /*/*/, то есть хвостовой частью. Тогда "${path%/$tail}"— это pathс косой чертой и удаленной хвостовой частью.

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

Кроме того, в Bash мы можем использовать сопоставление регулярных выражений внутри [[.. ]]и подобрать совпадающие части:

$ if [[ $path =~ (/[^/]+/[^/]+)/(.*) ]]; then 
    echo "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}"
fi 
/aaa/bbb ccc/ddd/eee/fff.txt

[[... ]]работает как условие, поэтому здесь просто использовать if, чтобы убедиться, что в пути достаточно компонентов.

10
28.01.2020, 02:16

Учитывая, что префикс является статическим, вы можете использовать расширение параметра, чтобы удалить его:

df_test=/aaa/bbb/ccc/ddd/eee/fff/ggg/hhh/iii.txt
cd /aaa/bbb
operate=${df_test#/aaa/bbb}
echo Operating on "$operate"
0
28.01.2020, 02:16

Лично мне нравится cutвместо этого:

$ echo "/aaa/bbb/ccc/ddd/eee/fff.txt" | cut -d'/' -f4-
ccc/ddd/eee/fff.txt

Вам просто нужно настроить аргумент -fнастолько глубоко, насколько вы хотите, чтобы он анализировал дерево каталогов.

Здесь показано, как избавиться от первых двух полей, используяawk:

$ echo "/aaa/bbb/ccc/ddd/eee/fff.txt" | awk -F'/' -v OFS='/' '{$1=$2=$3=""; print}' | sed 's#///##'
ccc/ddd/eee/fff.txt
2
28.01.2020, 02:16

Теги

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