গতকালের তারিখের জন্য শেল স্ক্রিপ্ট


16

আমি ফোল্ডারের কোনও ফাইলে হ্যাজেল অ্যাপ্লিকেশন সহ নিম্নলিখিত শেলসক্রিপ্টটি কার্যকর করার চেষ্টা করছি। এটি কাজ করে, তবে কেবল সমস্যাটিই হ'ল গতকালের তারিখ।

#! /bin/bash

saveDir="TJ"
dd=$(date --date='yesterday' +'%m-%d-%Y')
for file in *.csv ; do
    saveName="${saveDir}/TJ ${dd}.csv"
    cut -d',' -f2,14 "$file" > "$saveName"
done

কোনও ধারণা কেন এটি কাজ করছে না?

উত্তর:


31

এর মতো তারিখ ব্যবহার করার চেষ্টা করুন:

dd=$(date -v -1d '+%m-%d-%y')

উল্লিখিত হিসাবে yesterdayজিএনইউ তারিখের অংশ, তবে -1 ডি অফসেট ব্যবহার করা ওএস এক্স ব্যবহারের সমতুল্য হওয়া উচিত।


3

ওএস এক্সের সাথে বান্ডিল করা তারিখের ইউটিলিটিটি জিএনইউ তারিখ নয় (যা --dateবিকল্পটি গ্রহণ করে )।

আপনি এটি ইনস্টল করতে হোমব্রিউ ব্যবহার করতে পারেন ।

আপনি যা চান তা পেতে আপনি সম্ভবত পার্ল ব্যবহার করতে পারেন:

perl -MPOSIX=strftime -le 'print strftime("%d-%m-%Y",localtime(time()-86400))'
# or
perl -MTime::Piece -MTime::Seconds -le 'print((Time::Piece->new - ONE_DAY)->dmy)'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.