我的输入是以下排序的 CSV 文件(:
用作字段分隔符而不是通常的逗号):
version:device
1.0.0:dev1
1.0.0:dev2
1.2.3:dev3
1.3.4:dev4
1.3.4:dev5
我想聚合它,以便每个版本都在 1 行:
version:devices
1.0.0:dev1,dev2
1.2.3:dev3
1.3.4:dev4,dev5
我的输入是以下排序的 CSV 文件(:
用作字段分隔符而不是通常的逗号):
version:device
1.0.0:dev1
1.0.0:dev2
1.2.3:dev3
1.3.4:dev4
1.3.4:dev5
我想聚合它,以便每个版本都在 1 行:
version:devices
1.0.0:dev1,dev2
1.2.3:dev3
1.3.4:dev4,dev5
我有从文件中读取行的脚本,处理每一行。我希望能够以某种方式进行一些“后处理”,即使脚本没有完成读取所有行,因为我按下了 Ctrl+C,它仍然会进行后处理。为了实现这一点,我正在尝试执行以下两项操作:
我设法使 1 或 2 工作,但不能同时工作:
#!/bin/bash
# 2. Either this works
# trap ctrl-c and call ctrl_c()
trap ctrl_c INT
function ctrl_c() {
echo "** Trapped CTRL-C"
}
# 1. Or this works
LOGFILE=/tmp/${FILE}.tee
rm ${LOGFILE}
exec > >(tee ${LOGFILE}) 2>&1
function post_process() {
# use ${LOGFILE}
}
egrep "(${URL_PATH})" ${FILE} |
while read LINE ; do
#...
done
post_process