【问题标题】:Issue with ls -l and grep command in bash scriptbash 脚本中的 ls -l 和 grep 命令问题
【发布时间】:2018-05-09 18:02:08
【问题描述】:

我有一段代码,希望它在特定路径中搜索字符串。该脚本将使用 while 循环从输入文件中获取输入字符串。基本上,我想逐行读取该文件并尝试找出该行的内容是否存在于特定路径中。

#!/bin/bash

filename='/input.txt'
path=/

while read -r line
do
    res=`ls -l $path | grep $line`
    echo "$res"
done < "$filename"

【问题讨论】:

  • idownvotedbecau.se/imageofcode 请使用适当的代码降价粘贴您的代码。您还应该前往帮助中心了解如何创建Minimal, Complete and Verifiable Example
  • 为什么大部分代码都被注释掉了?
  • 就问题而言,目前尚不清楚您到底面临什么问题。我建议遵循 chepner 的建议并更改您的文件访问策略,如果您仍然遇到问题,请使用相关错误/代码编辑您的问题,并更具体地解释是什么阻碍了您
  • @WillBarnwell 嗨,实际上我已经尝试了所有方法,例如使用 if 命令,之后我真的想知道实际输出是什么,所以我已经同意了一些。

标签: bash shell grep ls


【解决方案1】:

find代替ls

find $file -maxdepth 1

如果您需要 grep 获取完整路径,请确保将绝对/规范路径传递给 find

find `readlink -f $file` -maxdepth 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2014-02-10
    相关资源
    最近更新 更多