[英]Unable to delete apostrophe using SED command on text file
我正在嘗試從文本文件中提取數字,並且一直在使用 SED 命令來刪除不需要的字符。 但是,我無法刪除雜散的撇號。
這是示例文本:
CLASSES SCORES
[u'Precipitate', u'Crystals', u'Other', u'Clear'] [0.8788071274757385, 0.050357233732938766, 0.038349077105522156, 0.03248654305934906]
這是想要的結果:
0.8788071274757385, 0.050357233732938766, 0.038349077105522156, 0.03248654305934906
這是我正在使用的代碼:
echo running
sed -i '/^CLASSES/ d' ~/Desktop/testgcloud/results.txt
sed -i -e "s/Precipitate//g" -e "s/Other//g" -e "s/Crystals//g" -e "s/Clear//g" -e "s/u//g" ~/Desktop/testgcloud/results.txt
sed -i -e "s/\[//g" -e "s/\]//g" -e "s/\'//g" ~/Desktop/testgcloud/results.txt
echo finished running
這是代碼的結果:
'', '', '', '' 0.8788071274757385, 0.050357233732938766, 0.038349077105522156, 0.03248654305934906
另外,有沒有辦法刪除每行的前四個逗號?
與其刪除您不想要的東西,不如專注於您想要的東西。
grep -Po '([0-9]+\\.[0-9]+,? ?)+' input_file > ~/Desktop/testgcloud/results.txt
這將寫入與模式匹配的結果文件內容:至少一個數字、十進制、至少一個數字和一個可選的逗號和空格。 看似只需一步即可解決您的問題。
如果您真的設置了 sed,以下內容將刪除空的撇號和可選的逗號和空格。
sed "s/'',\\? \\?//g"
sed -i.bkp -e '/^CLASSES/d' -e 's/^\[[^]]*\]\s\+\[//' -e 's/\]$//' sample.txt
-e 's/^\\[[^]]*\\]\\s\\+\\[//'
- 刪除第一組[]
中的任何內容,周圍的[]
和下一個[
-演示(注意 sed使用\\+
而不是+
但其余部分相同)-e 's/\\]$//'
- 刪除尾隨]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.