我試圖做名字的列表:如何在sed shell命令中使用數組?
list = a, b, c, d, e
sed "/$list/d" output_file.txt
使得包含這些變量線A,B,C,d,電子就會從OUTPUT_FILE排除
請人幫忙
我試圖做名字的列表:如何在sed shell命令中使用數組?
list = a, b, c, d, e
sed "/$list/d" output_file.txt
使得包含這些變量線A,B,C,d,電子就會從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
要保存'sed'的內嵌內容,請使用:'sed -E -i.bak「/ $ {re %|}/d「文件」 – anubhava
它看起來像在終端上顯示當我運行該腳本是正確的輸出,但後來當我打開文件我用我的代碼與這一個單獨生成它仍然不排除列表 – Edccccch
試試這個:'list =(abcde); (IFS =「|」; grep -vE「($ {list [*]})」input_file> output_file)' – Cyrus