簡體   English   中英

Unix Shell Scripting刪除 - 從文件

[英]Unix Shell Scripting removing - from file

我有一個包含以下信息的文件

job, cost_code, laborcost,materialcost       
202-12-21, 23-94-23, **110.00-**, 120.04    
204-12-21, 23-93-23, 520.00, **120.04-**    
204-12-12, 24-93-23, 155.00, **120.04-**

幾乎沒有問題記錄,特別是在行的末尾有一個-sign(用**標記,文件中並不存在)。

我正在嘗試刪除帶有正則表達式的 - 符號,但我只能找到有問題的數量。

試試這個,這個命令刪除行尾的破折號

sed s'/-$//'
echo "204-12-21, 23-93-23, 520.00, 120.04-" | sed s'/-$//'

你可以使用sed

sed -i~ 's/\([0-9]\)-,/\1,/g;s/-$//' input.csv

第一個表達式找到一個數字后跟-,並用數字和逗號替換它; 第二個表達式刪除行末尾的破折號。

這可能適合你(GNU sed):

sed -r 's/-(,|$)/\1/g' file

從行的最后一個字段中刪除逗號或連字符前的連字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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