【问题标题】:List out text files from given directory in unix列出Unix中给定目录中的文本文件
【发布时间】:2016-11-04 20:10:46
【问题描述】:

编写shell脚本以在ubuntu中使用for循环对给定目录中的文本文件数据进行排序:

   echo "Enter directory Name"
   read dr
   path= ` find /home/user -name $dr `
   for x in ` ls *.txt $path ` 
     do
       sort $x
     done
   echo "------Script finished-------"

但是这个脚本给了我错误或消息(即使我有文本文件):

   ls: cannot access *.txt: No Such File or Directoy

我认为 ls 命令有问题,是语法错误还是什么?如何列出给定目录路径中的文本文件?

【问题讨论】:

  • 你的意思不是for x in ` ls $path/*.txt ` 吗?
  • 这是脚本错误,我解决了。 @JeffY

标签: linux shell unix ubuntu


【解决方案1】:

这是一个修改后的示例。我不知道为什么反引号不起作用所以我使用了 ():

echo "Enter directory Name"
   read dr
   path=( $(find /home/user -type d -name $dr))
   for x in `ls $path/*.txt`
     do
       sort $x
     done
   echo "------Script finished-------"

【讨论】:

  • 三件事:1)我希望用户只输入目录名,而不是目录路径。示例:它可能是“dir3”,其中“/home/dir1/dir2/dir3”。这就是我使用 find 的原因。 2) 只想用 for 循环执行任务。 3)想要对内容进行排序而不是文件名。
  • 我在评论中提到 jeff 解决了这个问题,我认为你的脚本也是正确的。
猜你喜欢
  • 2011-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多