【发布时间】:2020-01-07 12:33:56
【问题描述】:
我得到文件,其中包含可变数量的分号来分隔我的数据。 8 个强制列,用 7 个分号分隔 2 个非强制列(链接,是否存在),如果存在,文件中的 9 个分号(我需要)。
我的要求是测试文件中的所有行,测试是否有 7 个分号,然后在末尾添加 2 个分号。如果是 9 个分号,则什么也不做。
07/15/19 02:58:40 PM;toto2_UBD_FD_GPRS_GLBL_EXCP;TABLE;DATA;COMPLETE;BASE_TEST_DSA;0;0
07/15/19 02:58:40 PM;toto_UBD_FD_GPRS_GLBL_EXCP;TABLE;DATA;COMPLETE;BASE_TEST_DSA;37484032;253118
07/15/19 02:55:59 PM;UBD_FD_GPRS_GLBL_EXCP;TABLE;DATA;COMPLETE;BASE_TEST_DSA;37484032;253118
07/15/19 02:55:59 PM;UBV_FD_GSM_GLBL_EXCP;TABLE;DATA;COMPLETE;BASE_TEST_DSA;0;0
07/15/19 02:55:59 PM;UBV_FD_GSM_GLBL_EXCP;TABLE;DATA;COMPLETE;BASE_TEST_DSA;0;0;E1234;LIB1234
我想像这样的:
while read line; do
if [[ `awk -F ";" ' { print NF-1 }'` = "7" ]]; then
sed '/;$/!s/$/;;/' $line
fi
done < TEST_FILE2.txt > TEST_FILE3.txt
【问题讨论】:
标签: bash loops if-statement awk