如果列中包含特殊字符或数字,但末尾用逗号,
,则我尝试添加[]。第一行必须保持在文件中。
当前:
CREATE TEST
a,
b,
23_test,
期望:
CREATE TEST
a,
b,
[23_test],
答案 0 :(得分:1)
假设特殊字符是数字,空格,减号,加号,点和下划线(请根据您的定义修改图案),怎么做:
awk 'NR>1 && /[-0-9_+. ]/ {$0 = "[" gensub(",$", "", 1) "],"} {print}' input.txt
如果您可以确定特殊字符是除字母和逗号之外的任何其他字符,请改用
awk 'NR>1 && /[^a-zA-Z,]/ {$0 = "[" gensub(",$", "", 1) "],"} {print}' input.txt
希望这会有所帮助。
答案 1 :(得分:0)
awk 'NR>1 && /[-0-9_+. ]/ {$0 = "[" gensub(",$", "", 1) "],"} {print}' <filename.out> | sed 's/, ]/]/'
答案 2 :(得分:0)
awk '{sub(/23_test/,"[23_test]")}1' file
CREATE TEST
a,
b,
[23_test],