加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash:检查条目是否为一行的本地方式?

发布时间:2020-12-16 01:52:45 所属栏目:安全 来源:网络整理
导读:我有一个find脚本,如果只找到一个文件,它会自动打开一个文件.我目前处理它的方式是对搜??索结果的行数进行字数统计.有更简单的方法吗? if [ "$( cat "$temp" | wc -l | xargs echo )" == "1" ]; then edit `cat "$temp"`fi 编辑 – 这是整个脚本的上下文. t
我有一个find脚本,如果只找到一个文件,它会自动打开一个文件.我目前处理它的方式是对搜??索结果的行数进行字数统计.有更简单的方法吗?

if [ "$( cat "$temp" | wc -l | xargs echo )" == "1" ]; then
    edit `cat "$temp"`
fi

编辑 – 这是整个脚本的上下文.

term="$1"
temp=".aafind.txt"

find src sql common -iname "*$term*" | grep -v 'src/.*lib'  >> "$temp"

if [ ! -s "$temp" ]; then
    echo "? - including lib..." 1>&2
    find src sql common -iname "*$term*"  >> "$temp"
fi


if [ "$( cat "$temp" | wc -l | xargs echo )" == "1" ]; then
    # just open it in an editor
    edit `cat "$temp"`
else
    # format output
    term_regex=`echo "$term" | sed "s%*%[^/]*%g" | sed "s%?%[^/]%g" `
    cat "$temp" | sed -E 's%//+%/%' | grep --color -E -i "$term_regex|$"
fi

rm "$temp"

解决方法

除非我误解,变量$temp包含一个或多个文件名,每行一个,如果只有一个文件名则应该编辑?

[ $(wc -l <<< "$temp") = "1" ] && edit "$temp"

如果$temp是包含文件名的文件:

[ $(wc -l < "$temp") = "1" ] && edit "$(cat "$temp")"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读