我有以下文件夹列表,名称中包含两个单词并用空格分隔
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
或类似的东西。
编辑:按照以下步骤操作
script
在当前目录中创建一个以上述命令命名的文件。- 跑步
chmod a+x script
。 (这使您的脚本可执行) - 跑步
./script DIR_NAME
。 (将 DIR_NAME 替换为您想要的目录) - 这将创建两个文件
file1.txt
并file2.txt
位于同一目录中script