2017-02-19 106 views
0

我已經找到了幾個例子,在線..但我不能 發現,將工作,作爲synx的sed的 組合是非常棘手的,如果你能請您指出我 正確的方向我將非常感激..刪除時間戳使用sed

這裏是時間戳,我想從文件中刪除

00:02:06.580 - > 00:02:07.380

這裏是我的已經試過

cat sometextfile.txt | sed -r 's /\[0-9]{2}:[0-9]{2}:[0-9]{2}\/ g' 

但一直收到和錯誤:sed的:-e表達#1,炭34:無端接`s'的命令

謝謝!

回答

1

語法s/什麼來代替/做什麼用/更換。你錯過了第二部分。即使你想用一無所有來取代它,你也需要所有的三個斜線;只是不要在最後兩個之間放置任何東西。實際上,您只有一個斜線,因爲第二個用\引用,這意味着sed會將其視爲表達式的一部分,並在輸入中查找字面值/

你的正則表達式的開始也是錯誤的。 \[0-9]{2}與文字字符串[0-9匹配,後面緊跟兩個右括號(]])。如果要匹配「正好兩位數」,請刪除最初的反斜槓(\)。

此外,你永遠不需要做cat文件名|;你可以做<文件名。在這個特定的情況下,sed需要一個文件名參數,所以你也可以不使用<

所以它應該是這樣的;

sed -E 's/[0-9]{2}:[0-9]{2}:[0-9]{2}//' sometextfile.txt 

(我用-E,因爲它更便攜比-r,這是一個GNUism。)

你不需要在年底g除非有每行一個以上的時間戳。

+0

感謝馬克..我能夠刪除約一半的字符串與建議的命令..這應該足以讓我開始,再次感謝! – Philcinbox

+0

所以這就是我最後的結果.. – Philcinbox

+0

cat file.txt | sed -E'/ [0-9] {2}:[0-9] {2}:[0-9] {2}。[0-999] {3} // g'> file_nostring.txt – Philcinbox