ディレクトリを参照し、フォルダ名から単語を抽出する

ディレクトリを参照し、フォルダ名から単語を抽出する

名前には、スペースで区切られた2つの単語が含まれる次のフォルダのリストがあります。

WEB TEH
COMPUTER SCIENCE
UNIX LINUX

ディレクトリに移動し、各フォルダから最初の単語と2番目の単語を抽出できるシェルスクリプトを作成します。

抽出された各単語をテキストファイルに入れます(各単語は1行にあります)。

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つの単語をどのように抽出するのかわかりません。


編集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

しかし、これら2つの単語をどのように抽出しますか?

ベストアンサー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. これにより、2つのファイルが作成され、file1.txt同じfile2.txtディレクトリにあります。script

おすすめ記事