我有一个由“|”分隔的四列的文件如下
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 :(得分: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中我检查第3或第4个字段是否为空,然后将其值设为DATE的值,然后在此提及1将打印当前(新形成的值为$ 4或$ 3,如果它们已被赋值为新值)线。