2017-04-03 19 views
1

我有一個由「|」分隔的四列文件如下將日期插入以「|」分隔的文件的空列中

23414|test doc for me|| 
32322|test doc for you|2004_12_03| 
13454|test doc for all||2010_11_01 

我試圖插入當前系統日期爲空列的,這樣輸出應該看起來像如

23414|test doc for me|2018_04_03|2018_04_03 
32322|test doc for you|2004_12_03|2018_04_03 
13454|test doc for all|2018_04_03|2010_11_01 
下面

是我正在試圖代碼

for file in `ls -rlt Added_to_* | awk '{print $9}'` 
do 
now="$(date +'%Y/%m/%d')" 
echo "Running for: $file" 
awk -F'|' -v curr="$now" '{ 
if($3=="" || $4==""){ 
    if ($3=="") { print "$curr"} 
    if ($4=="") { print "$curr"} 
}else 
    do_something ; 
}' $file 
done 

回答

0

@hemu:@try:

awk -F"|" -v DATE=$(date +%Y"-"%m"-"%d) '!$3{$3=DATE} !$4{$4=DATE} 1' OFS="|" Input_file 

只需將字段分隔符稱爲|然後創建一個awk的變量,它具有一個shell date命令,該命令以YYYY-MM-DD格式提供值。然後在awk中,我檢查第三或第四個字段是否爲空,然後將它們的值設置爲DATE的值,然後在此處提及1將打印當前值(如果它們已分配新值,則新建值爲$ 4或$ 3)行。