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
我一直在尋找全國各地,並得到沒有結果的結果文本,請大家幫忙
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
我一直在尋找全國各地,並得到沒有結果的結果文本,請大家幫忙
隨着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
一個最小的模式簡單地用兩個空格替換空格後跟0
(因爲2位數天不會有前導碼0
):
sed 's/ 0/ /g' file
添加-i
標誌編輯一個文件:
sed -i 's/ 0/ /g' file
如果你想更嚴格,與反向引用您可以搜索並替換個月,之後一個空間和0
與月和空間不0
:
sed 's/\(|[A-Za-z]\{3\} \)0/\1 /g'
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
啊哈,糾正! –
這可能爲你工作(GNU SED):
sed 's/\b[0-9]\b/0&/g' file
前綴的單數字與零。
使用'gensub'您可以使用打印。所以'awk'{print gensub(/ 0([0-9])/,「\\ 1」,「g」)}'file'可以正常工作。 –
第二位'[0-9]'在模式中無用,因爲'10'之後的數字不會以'0'開始。 – SLePort
它可能不是*數字*明智的,但它是模式明智的。它符合我們正在替換'[](0)(\ d)'vs'[](0)(\ D)'。而且這樣做的成本是0 ... – dawg