我试图让脚本找到第一个字符"反斜杠和验证,如果这是一个脚本的第一个字符,否则它不应该运行。
我的文件是Test.txt(有意设置大量行距):
c
select * from x;
我想出了这个,它工作:
cut -c -1 test.txt | grep -w '\'
然而,如果我改变了一个文件,假设像:
select * from x;
c
它仍然显示文件包含'',但我希望这失败,因为我总是希望第一个字符是'',无论我从哪行开始。
我已经尝试使用head/cut,但无法验证。请提一些建议。
使用正则表达式检查第一行是否包含以。如果遇到的第一行不是以开头的,则退出
backslash_pat='^\'
num_lett_pat='[0-9a-Z*]'
while IFS= read -r line; do
if [[ $line =~ $backslash_pat ]]
then
echo "$line"
exit
elif [[ $line =~ $num_lett_pat ]]
then
exit
fi
done < test.txt
您可以使用dd
(我理解这是您想要的)if [[ $(dd if=test.txt count=1 bs=1 2>/dev/null| xxd -c1 -ps) == 5c ]]
then
echo 'found'
fi
这适用于二进制文件(即不由行组成)。
检查man dd
和man xxd
以了解使用的命令行选项。