我有檔案:
$cat file.txt
1981080512 14 15
2019050612 17 18
2020040912 19 95
這里第一列將日期表示為 YYYYMMDDHH
我想將日期寫為 YYMMDDHH。所以欲望輸出是:
81080512 14 15
19050612 17 18
20040912 19 95
我的腳本:
while read -r x;do
yy=$(echo $x | awk '{print substr($0,3,2)}')
mm=$(echo $x | awk '{print substr($0,5,2)}')
dd=$(echo $x | awk '{print substr($0,7,2)}')
hh=$(echo $x | awk '{print substr($0,9,2)}')
awk '{printf "s%4s%4s\n",'$yy$mm$dd$hh',$2,$3}'
done < file.txt
它正在列印
81080512 14 15
81080512 17 18
請任何幫助。謝謝你。
uj5u.com熱心網友回復:
請不要因為這個簡單的答案而殺了我,但是這個呢:
cut -c 3- file.txt
您只需通過在每行末尾顯示字符 3 來剪切前兩位數字(-c開關指示您需要剪切字符(不是位元組,...))。
uj5u.com熱心網友回復:
您可以使用單GNU做AWK的substr如下,讓我們file.txt的內容是那么
1981080512 14 15
2019050612 17 18
2020040912 19 95
然后
awk '{$1=substr($1,3);print}' file.txt
輸出
81080512 14 15
19050612 17 18
20040912 19 95
說明:我使用substr函式從第一列中獲取第三個及以后的字符并將其分配回所述列,然后我print更改了行。
(在 gawk 4.2.1 中測驗)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/341196.html
上一篇:C#中的居中矩形
