디렉토리를 찾아보고 폴더 이름에서 단어를 추출하세요

디렉토리를 찾아보고 폴더 이름에서 단어를 추출하세요

이름에 공백으로 구분된 두 단어가 포함된 다음 폴더 목록이 있습니다.

WEB TEH
COMPUTER SCIENCE
UNIX LINUX

디렉토리를 탐색하고 각 폴더에서 첫 번째 단어와 두 번째 단어를 추출할 수 있는 쉘 스크립트를 작성하겠습니다.

추출된 각 단어를 텍스트 파일에 넣습니다(각 단어는 한 줄에 있음).

file1.txt에는 다음이 포함됩니다.

WEB
COMPUTER
UNIX

file2.txt에는 다음이 포함됩니다.

TECH
SCIENCE
LINUX

감사해요

편집하다:

나는 다음 스크립트를 작성합니다.

#!/bin/bash

# Read folder name and put it in file
read -p "Enter Your Path: "  Path
for entry in $Path
do
   echo -e "$entry">>file.txt
done

#Browse file and echo line
file="/home/user/file.txt"
while IFS= read -r line
do
    printf '%s\n' "$line"
done 
<"$file"

하지만 폴더 이름을 얻을 수 없습니다. (이 스크립트에서는 경로를 얻습니다.)

이 두 단어를 어떻게 추출하는지 모르겠어요


편집 2:

#!/bin/bash
# Read and put nom/prénom dans un fichier
read -p "Enter Your Path: "  Path
for entry in $Path
do
   word= basename $entry 
   echo -e "$word">>file.txt
   cat file.txt | cut -d ' ' -f 1 > file1.txt
   cat file.txt | cut -d ' ' -f 2 > file2.txt
done
#Browse folder 
file="/home/user/file.txt"
#while IFS= read -r line
#do
#       printf '%s\n' "$line"
#done <"$file"

스크립트의 출력은 다음과 같습니다.

COMPUTER
UNIX
WEB

cat file1.txt를 실행하면 fike의 내용이 보이지 않습니다.


편집 3:

폴더 이름을 표시할 수 있어요

for entry in $path
do
 echo ${entry##*/}>>file.txt
done

그런데 이 두 단어를 어떻게 추출하나요?

답변1

이 시도:

#!/bin/bash
ls "$1" > file.txt
cat file.txt | cut -d ' ' -f 1 > file1.txt
cat file.txt | cut -d ' ' -f 2 > file2.txt

어딘가에 저장해서 사용하거나 ./script_name /home그런 식으로 사용하세요.

편집: 다음 단계를 따르세요

  1. script현재 디렉터리에 위 명령으로 이름이 지정된 파일을 생성합니다.
  2. 달리기 chmod a+x script. (이것은 스크립트를 실행 가능하게 만듭니다)
  3. 달리기 ./script DIR_NAME. (DIR_NAME을 원하는 디렉터리로 바꾸세요)
  4. 그러면 두 개의 파일이 생성되고 file1.txt동일한 file2.txt디렉터리에 있게 됩니다.script

관련 정보