我正在尋找 awk 或 sed 解決方案,我都不是天才。我已經閱讀了當我開始輸入此內容時出現的所有建議。
我有一個包含資料行的文件:
name
thisdate=Sep 2 23:59:59 2022 GMT
name
thisdate=Sep 15 23:59:59 2022 GMT
名稱和日期/時間都不同,日期數字始終位於同一位置並且始終佔用相同數量的字元 (2),小時/分鐘/秒始終位於該行及其上的相同位置並非每一行都thisdate
始終是將來的日期,並且沒有空白行。
我試圖透過嘗試關閉 thisdate=
(這是前面的空格thisdate
)然後刪除位置 18-26 中的字元(如果我數對的話)來從這些日期行中刪除時間
我已經嘗試了幾件事,但主要是在尋找適合我需要的東西來為我指明正確的方向
952 sed 's/^\(.\{18\}\)\(.\{26\}\)/\1/' file <--this may not have worked as I didn't key on a match?
958 sed -i 's/thisdate=(.{11})18/\26/' file
959 sed -i 's/thisdate=(.{10})17/\25/' file
我確信我錯過了一些東西,但如果有人能指出我正確的方向,我將不勝感激!
答案1
看起來只需刪除之後第 6 個字元後的 9 個字元就足夠了 thisdate=
:
sed 's/^\( thisdate=.\{6\}\).\{9\}/\1/' file
對於給定的數據,這將生成
name
thisdate=Sep 2 2022 GMT
name
thisdate=Sep 15 2022 GMT