浏览目录并从文件夹名称中提取单词

浏览目录并从文件夹名称中提取单词

我有以下文件夹列表,名称中包含两个单词并用空格分隔

WEB TEH
COMPUTER SCIENCE
UNIX LINUX

我将创建一个 shell 脚本,该脚本可以浏览目录并从每个文件夹中提取第一个和第二个单词,

并将提取的每个单词放入一个文本文件中(每个单词在一行中)

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.txtfile2.txt位于同一目录中script

相关内容