unix - awk 更改 shell 变量
问题描述
我想在 awk 中修改几个 shell 变量:
echo "$LINE_IN" | awk '/pattern1/ {print $0; WRITTEN=1; REC=$REC+1}' >> $FILE1
我试图把eval,但仍然不起作用:
eval $( echo "$LINE_IN" | awk '/pattern1/ {print $0; WRITTEN=1; REC=$REC+1}' >> $FILE1 )
有什么建议吗?我想用k-shell脚本,谢谢!
解决方案
完成后计算点击数:
echo "${LINE_IN}" | grep -E 'pattern1' > "${FILE1}"
REC=$(wc -l < "${FILE1}")
if (( REC > 0 )); then
WRITTEN=1
fi
当你真的想使用awk
时,你必须让 awk 将结果写入 stdout 并解析 stdout:
echo "${LINE_IN}" | awk '/echo/ {print $0 > "x3"; WRITTEN=1; REC++}
END { print "WRITTEN=" WRITTEN; print "REC=" REC}'
WRITTEN=1
REC=6
当您想要真正设置变量时,将其包装起来:
source (echo "${LINE_IN}" | awk '/echo/ {print $0 > "x3"; WRITTEN=1; REC++}
END { print "WRITTEN=" WRITTEN; print "REC=" REC}')
注意:习惯使用小写变量名,如written
,file
和rec
.
推荐阅读
- scrapy - 在 scrappinghub 上抓取大量不同域时,scrapy 请求持续时间逐渐变长
- delphi - 使用RTTI递归迭代delphi中的内部记录
- android - 显示初始屏幕图像并加载/显示插页式广告
- html - 怎么放屏幕两侧的标签?
- java - 页面重新加载后,Selenium 在页面上找不到元素
- java - Intellij 未将资源的子文件夹重新设置为类路径。
- regex - ADFS 声明规则中的正则表达式负前瞻
- javascript - 重用 React 组件的业务逻辑
- javascript - 使用 onclick 切换 2 个滑块
- postgresql - 使用 3 IN 的查询在表中索引什么?