Bash打印不正确的文件行数

安静

初学者寻求帮助(:

因此,我有一个脚本可以检查文本文件中的方括号,并告诉它们是否正确关闭。但是,我也想使我的脚本打印出不正确的行号(其中括号未正确关闭)。我试过计算文件行数,然后创建一个嵌套的while循环,但是,这对我根本不起作用):是否有任何简单的解决方案?如果可能的话,我想离开LINE柜台:

INPUT="$1" 
count=0
LINE=0


# Check if file exists
[ ! -f $INPUT ] && { echo "file $INPUT do not exist."; exit ; }


# Count file lines and read every char
while IFS= read -r LINE
do
LINE=$(( LINE + 1 ))
     while read -n1 char
     do
     [ "$char" == "(" ] && (( count++ ))
     [ "$char" == ")" ] && (( count-- ))

     if [ "$count" -lt 0 ]
     then
          break 
     fi

done 
done < "$INPUT"


if [ "$count" -lt 0 ]
   then
echo "Found a mistake in $LINE line "
   else
echo "Everything's correct"
fi
gniourf_gniourf

您有几个问题:

  • read在内部循环中使用文件的输入,而不是LINE
  • 线

    LINE=$(( LINE + 1 ))
    

    确实是错误的:LINE文件行的内容以及您要添加1该行的内容奇怪的。

  • break只能打破内部循环(它应该打破两个循环)。使用break 2此。

这是脚本的工作版本:

input=$1
count=0
linenb=0

# Check if file exists
[[ -f $input ]] || { echo "Error: file $input do not exist."; exit 1; }

# Count file lines and read every char
while IFS= read -r line; do
    ((++linenb))
     while read -n1 char; do
         [[ $char == '(' ]] && ((++count))
         [[ $char == ')' ]] && ((--count))
         ((count>=0)) || break 2
     done <<< "$line"
done < "$input"

if ((count<0)); then
    echo "Found a mistake in line #$linenb:"
    printf '%s\n' "$line"
else
    echo "Everything's correct"
fi

请注意,我使用了更多((...))[[...]]

我还使用了小写的变量名,因为您的计算机并不充耳不闻:您无需大喊变量名。(而且更好看)。最好使用小写的变量名,因为它们不会与Bash自己的变量发生冲突。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

负值打印不正确

来自分类Dev

Interop Excel UsedRange行数不正确

来自分类Dev

phpmyadmin:MySQL的表行数不正确

来自分类Dev

ngTable中每页的行数不正确

来自分类Dev

SQL:错误显示不正确的行数

来自分类Dev

在 bash 中输出到日志文件不正确

来自分类Dev

文件上传不正确

来自分类Dev

从perl打印json不正确

来自分类Dev

java打印:纸张尺寸不正确

来自分类Dev

从perl打印json不正确

来自分类Dev

printf打印的号码不正确

来自分类Dev

如何打印不正确的问题?

来自分类Dev

宏打印不正确的输出

来自分类Dev

C - 程序打印不正确

来自分类Dev

在Python中读取文件(在Mac上)时,打印出的文字不正确

来自分类Dev

Java不正确打印负二进制文件

来自分类Dev

使用 C 文件中的库存数据时,数据打印不正确

来自分类Dev

bash 中的字符显示不正确

来自分类Dev

单击按钮时打印 TextField - 打印不正确

来自分类Dev

使用Rand(Checksum(Newid()))更新的行数不正确

来自分类Dev

Python脚本中的JOIN查询返回的行数不正确

来自分类Dev

Webconfig文件格式不正确

来自分类Dev

文件名显示不正确

来自分类Dev

表MYSQL的密钥文件不正确

来自分类Dev

头文件不正确包含

来自分类Dev

CSV文件输出不正确

来自分类Dev

xtype:文件字段显示不正确

来自分类Dev

恢复不正确写入USB的文件?

来自分类Dev

join:“文件2的排序不正确”