簡體   English   中英

無法在文本文件上使用 SED 命令刪除撇號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM