我有这样的文字
Jan 28\|Jan 29\|Jan 30\|Jan 31\|Feb 01\|Feb 02\|Feb 03\|Feb 04
我想要像这样的结果
Jan 28\|Jan 29\|Jan 30\|Jan 31\|Feb 1\|Feb 2\|Feb 3\|Feb 4
我一直在搜索并且没有结果,请帮助
答案 0 :(得分:5)
使用gawk
,您可以使用gensub
:
awk '{print gensub(/ 0([0-9])/," \\1", "g")}' file
Jan 28\|Jan 29\|Jan 30\|Jan 31\|Feb 1\|Feb 2\|Feb 3\|Feb 4
与sed
相同的模式:
sed 's/ 0\([0-9]\)/ \1/g' file
Jan 28\|Jan 29\|Jan 30\|Jan 31\|Feb 1\|Feb 2\|Feb 3\|Feb 4
答案 1 :(得分:2)
一个简单的模式,只需用SELECT (c.subs = s.subs) as same_flag
FROM (SELECT GROUP_CONCAT(ID_Sub ORDER BY ID_sub) as subs
FROM Course
WHERE ID_Course='$courseid'
) c CROSS JOIN
(SELECT GROUP_CONCAT(ID_Sub ORDER BY ID_sub) as subs
FROM student
WHERE ID_Student='$id'
) s;
替换空格,然后用两个空格(因为2个数字的天数不会有前导0
):
0
添加sed 's/ 0/ /g' file
标志以编辑文件:
-i
如果您想要更具限制性,使用反向引用可以搜索和替换月份,后跟一个空格,sed -i 's/ 0/ /g' file
包含月份和空格,而不是0
:
0
答案 2 :(得分:1)
echo "Jan 28\|Jan 29\|Jan 30\|Jan 31\|Feb 01\|Feb 02\|Feb 03\|Feb 04"|\
> awk '{gsub(/ 0/," ")}1'
Jan 28\|Jan 29\|Jan 30\|Jan 31\|Feb 1\|Feb 2\|Feb 3\|Feb 4
答案 3 :(得分:0)
这可能适合你(GNU sed):
sed 's/\b[0-9]\b/0&/g' file
使用零前缀单个数字。