我有一个包含两条记录的输入文件,每条记录都是用竖线分隔的。
输入文件:/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 执行
有人可以帮我调整这段代码以满足我的要求
最佳答案
为什么要检查,replace 足以满足您的情况:
replacing_dt=$1
RAW_DIR_PATH=/omega/inputfiles/
awk -v dt="$replacing_dt" -F '|' '{print $1 FS dt}' "$RAW_DIR_PATH/feeds.txt"
关于linux - 根据某些条件更新文件中的单个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34305303/