我有一个包含两条记录的输入文件,每条记录都是以管道分隔的。
输入文件:/omega/inputfiles/feeds.txt
SALES|2015-12-14
PROFILES|2015-11-27
对于shell脚本,我将在' YYYY-mm-dd"中传递动态日期。格式。如果该动态日期不等于feeds.txt中的日期值,那么我需要用动态日期替换feeds.txt中的日期值。
让我们说如果我将动态日期作为' 2015-12-14'那么这个文件需要更新如下
SALES|2015-12-14
PROFILES|2015-12-14
我编写了以下脚本,但我不知道如何根据条件替换文件中的记录字段
replacing_dt=$1
RAW_DIR_PATH=/omega/inputfiles/
while read feed_line ; do
raw_dir_latest_upt_dt=`echo $feed_line | cut -d '|' -f 2`
if [ $raw_dir_latest_upt_dt != $replacing_dt]
then
#Code to replace the date available in file with replacing_dt
fi
done < $RAW_DIR_PATH/feeds.txt
我执行此文件为bash /omega/code/file_update.sh 2015-12-14
有人可以帮助我调整此代码以满足我的要求
答案 0 :(得分:0)
为什么费心检查,替换就足以满足您的需求:
replacing_dt=$1
RAW_DIR_PATH=/omega/inputfiles/
awk -v dt="$replacing_dt" -F '|' '{print $1 FS dt}' "$RAW_DIR_PATH/feeds.txt"