我正在尝试将一个参数传递给名为HandleError.sh的脚本:
#!/bin/ksh
s=$1
echo $s
awk -v search=$s '$0 ~ /search/ { vart = NR }{ arr[NR]=$0 } END { for (i = vart;
i<=NR ; i++)
print arr[i] }' W_ERP_CLINICAL_LOAD.out > ENCOUNTER_DETAIL_ERROR.txt
我这样称呼它:
HandleError.sh BEGIN EMR_LAB_FAC
我正在尝试将文件W_ERP_CLINICAL_LOAD.out
从第一次出现的BEGIN EMR_LAB_FAC
复制到文件的底部。除了传递参数外,一切都运行良好。
我可以像这样硬编码并且工作正常。
awk '$0 ~ /BEGIN ENCOUNTER_DETAIL/ { vart = NR }{ arr[NR]=$0 } END { for (i = vart; i<=NR ;
i++) print arr[i] }' W_ERP_CLINICAL_LOAD.out > ENCOUNTER_DETAIL_ERROR.txt
有什么想法吗?
答案 0 :(得分:2)
与this answer相似......
将$0 ~ /search/
替换为$0 ~ search
。
答案 1 :(得分:1)
你想要这个:
awk -v search="$s" '$0 ~ search {f=1} f' W_ERP_CLINICAL_LOAD.out
不需要数组。如果找不到搜索模式,您所使用的方法也会复制文件的全部内容。