如何防止bash for循环转换字符串数据
我想从邮件日志中筛选出日期戳并删除所有事件: (基本上,这是usb历史清理器脚本的一部分,添加head-n1只是为了测试) 运行此命令时:如何防止bash for循环转换字符串数据,bash,awk,grep,Bash,Awk,Grep,我想从邮件日志中筛选出日期戳并删除所有事件: (基本上,这是usb历史清理器脚本的一部分,添加head-n1只是为了测试) 运行此命令时: egrep usb /var/log/messages | awk -F"$delimiter" '{print $1}' | uniq | head -n1 输出良好: Mar 31 03:25:03 但当它返回到for循环时,数据传输是这样的,因为空间: Mar 31 03:25:03 问题是:我如何防止这种行为?而不是: for item in
egrep usb /var/log/messages | awk -F"$delimiter" '{print $1}' | uniq | head -n1
输出良好:
Mar 31 03:25:03
但当它返回到for循环时,数据传输是这样的,因为空间:
Mar
31
03:25:03
问题是:我如何防止这种行为?而不是:
for item in `whatever`; do
echo ${item}
done
使用:
但你的整个剧本可以改写为:
awk -F"${HOSTNAME%%.*}" '/usb/ && !seen[$1]++ {print $1}' /var/log/messages
whatever |
while IFS= read -r item; do
echo "${item}"
done
awk -F"${HOSTNAME%%.*}" '/usb/ && !seen[$1]++ {print $1}' /var/log/messages