名前には、スペースで区切られた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
そのように使用してください。
編集:次の手順に従ってください
script
現在のディレクトリに上記のコマンドで名前が付けられたファイルを生成します。- ランニング
chmod a+x script
。 (これはスクリプトを実行可能にします) - ランニング
./script DIR_NAME
。 (DIR_NAMEを希望のディレクトリに置き換えます) - これにより、2つのファイルが作成され、
file1.txt
同じfile2.txt
ディレクトリにあります。script