我有数百个文件,我想根据它们包含的关键字的值将它们分为两组。关键字及其可能的值为DATA_CONVERSION_TYPE =“ TABLE”或DATA_CONVERSION_TYPE =“ 12Bit”
我编写了以下脚本,它们使用grep
在文件中搜索关键字。但是,尽管我的意图有所不同,但else条件仍在执行。正如jhnc所建议的,我为每个变量都做了echo "$Variable_Name" | od -c
。我的变量TYPE有一个\ r字符,但TAB没有。是否可能以某种方式告诉bash忽略它,或添加/删除字符以使它们的变量相同?
#!/usr/bin/env bash
TAB='DATA_CONVERSION_TYPE = "TABLE"'
echo "$TAB" | od -c
for LABEL in ~/data/test_nov12/*.LBL
do
TYPE=$(grep 'DATA_CONVERSION_TYPE = "TABLE"' $LABEL)
echo "$TYPE" | od -c
if [ "$TYPE" = "$TAB" ]
then
echo "Table-encoded"
else
echo "12-bit"
fi
done
这将输出
0000000 D A T A _ C O N V E R S I O N _
0000020 T Y P E = " T A B L E " \n
0000037
0000000 D A T A _ C O N V E R S I O N _
0000020 T Y P E = " T A B L E " \r \n
0000040
12-bit
谢谢