簡體   English   中英

如何在sed shell命令中使用數組?

[英]how to use array in sed shell command?

我正在嘗試列出姓名:

list = a, b, c, d, e
sed "/$list/d" output_file.txt

因此包含這些變量a,b,c,d,e的行將從output_file中排除

有人請幫忙

使用GNU grep:

list=(a b c d e)
(IFS="|"; grep -vE "(${list[*]})" file)

或使用GNU sed:

list=(a b c d e)
(IFS="|"; sed -E "/(${list[*]})/d" file)

您可以使用BASH數組生成帶有管道的正則表達式(替代):

list=(a b c d e) # original array

printf -v re "%s|" "${list[@]}" # genera a regex delimited by |

sed -E "/${re%|}/d" file # use sed on this regex

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM