이름에 공백으로 구분된 두 단어가 포함된 다음 폴더 목록이 있습니다.
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
그런 식으로 사용하세요.
편집: 다음 단계를 따르세요
script
현재 디렉터리에 위 명령으로 이름이 지정된 파일을 생성합니다.- 달리기
chmod a+x script
. (이것은 스크립트를 실행 가능하게 만듭니다) - 달리기
./script DIR_NAME
. (DIR_NAME을 원하는 디렉터리로 바꾸세요) - 그러면 두 개의 파일이 생성되고
file1.txt
동일한file2.txt
디렉터리에 있게 됩니다.script