###########################################################################
目标:
1,2,3,4,5,6,7,8,9,0,
替换成:
1,2,3,4,5,6,7,8,9,0,?
######################QQ群中的方案#####################################################
sed方案如下:
echo "1,2,3,4,5,6,7,8,9,0," | sed 's#$#?#'(最后一栏强制替换成"?")
echo "1,2,3,4,5,6,7,8,9,0" | sed 's#,$#,?#'(检测最后两栏是", "替换成",?")
$表示文件最后一行
#是定界符
来自:
QQ群:302706076
中的大佬:
3456424
提供
########################CSDN论坛中的方案##################################################
sed -i 's/,$/,?/g' aaa.txt 这个直接修改目标文件,把以 , 结尾的替换为 ,?
sed -n 's/,$/,?/g;p' aaa.txt 修改后输出,不修改目标文件
这个方案和上面的类似,主要是把定界符换了一下
###########################################################################
awk方案如下:
$ cat data.txt
1,2,3,4,5,6,7,8,
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9,10,
1,2,3,4,5,6,7,8,9,10,11
1,2,3,4,5,6,7,8,9,10,11,12,
1,2,3,4,5,6,7,8,9,10,11,12,13
1,2,3,4,5,6,7,8,9,10,11,12,13,14,
$ awk
'{if ($0 ~ /,[ \t]*$/) {printf("%s?\n", $0)} else {print}}'
data.txt
1,2,3,4,5,6,7,8,?
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9,10,?
1,2,3,4,5,6,7,8,9,10,11
1,2,3,4,5,6,7,8,9,10,11,12,?
1,2,3,4,5,6,7,8,9,10,11,12,13
1,2,3,4,5,6,7,8,9,10,11,12,13,14, ?