我正在我的RedHatOS中构建一个shell脚本。
我尝试使用正则表达式输出文件名,如下所示。
#!/bin/bash
ls -1r rrr* > /tmp/memo.txt
并且/tmp/meme.txt的内容是这个
/tmp/rrr1.txt
我想将所有文件写入txt文件,就像我在控制台中做同样的事情
$ls -1r rrr* > /tmp/memo.txt
$cat /tmp/memo.txt
并且cat命令的结果是这个
/tmp/rrr1.txt
/tmp/rrr2.txt
我不明白发生了什么。请告诉我为什么会发生这种情况,以及如何将ls命令的所有结果写入文件。
感谢。
答案 0 :(得分:0)
使用以下内容获取完整路径:
ls -d -1 $PWD/rrr*
结果:
/tmp/rrr1.txt
/tmp/rrr2.txt
/tmp/rrr3.txt
另外,ls -1r
你会得到
rrr3.txt
rrr2.txt
rrr1.txt
并使用ls -1
(不包含r
)为您提供
rrr1.txt
rrr2.txt
rrr3.txt
所以你的脚本看起来像这样:
#!/bin/bash
ls -d -1 $PWD/rrr* > /tmp/memo.txt
答案 1 :(得分:-2)
谢谢大家。 现在我在bash脚本中使用ls得到了特定目录中输出文件名的答案...
#!/bin/bash
data=("$(ls -trh "$@")")
for entry in "${data[@]}"
do
echo "${entry}" > /tmp/memo.txt
done
您可以使用此文件将所有文件名转换为文本文件(/tmp/memo.txt)。