디렉토리 트리를 인쇄하는 변수가 있습니다. 예를 들면 다음과 같습니다.
/folder1/folder2/folder3/folder4/folder5/folder6
나만 옳아처음 4개 값, bash에서 백슬래시로 구분된 첫 번째 디렉토리만 인쇄하는 가장 좋은 방법은 무엇입니까? 예:
/folder1/folder2/folder3/folder4
답변1
awk를 사용하세요:
echo /folder1/folder2/folder3/folder4/folder5/folder6 |\
awk -F/ -vOFS=/ '{ print $1,$2,$3,$4,$5; }'
OFS
= 출력 필드 구분 기호.
$1 .. $5
선행 슬래시가 로 계산되므로 필수입니다 1
.
사용 컷:
echo /folder1/folder2/folder3/folder4/folder5/folder6 |\
cut -f -5 -d/
sed를 사용하세요:
echo /folder1/folder2/folder3/folder4/folder5/folder6 |\
sed 's:\(\(/[^/]\+\)\{4\}\).*:\1:'
답변2
만약 있다면세게 때리다그리고 var
능력이 있는
echo ${var%/${var#/*/*/*/*/}}
또 다른 방법
IFS=/ var=($var)
printf '%b/' "${var[@]::5}\n\c"