Проблема заключалась как в моем синтаксисе awk, так и во входном файле, который я предоставлял для awk. "$ inputdir / $ sourcefile" - это не расширялось в одно имя файла.
Спасибо всем, кто отправил ответ - он помог мне понять ошибки. полученный код выглядит, как показано ниже (это фрагмент из более крупного сценария, поэтому все объявленные мной переменные могут быть связаны не только с этим фрагментом)
timestamp=`date +\%Y\%m\%d\%H\%M\%S`
logfile=/udd001/sboper/CMStandAlone/input/logs/SBSA_GLMS_CUST_$timestamp.log
datetime=`date +\%Y\%m\%d`
logdatetime=`date +\%Y\%m\%d`
foldermonth=`date +\%B_\%Y`
folderday=`date +\%d`
inputdir="/udd001/sboper/CMStandalone/fsplit/GLMS"
outputdir="/udd001/sboper/CMStandAlone/input/$foldermonth"
outputdirday="/udd001/sboper/CMStandAlone/input/$foldermonth/GLMS_Daily/$folderday"
inputfile=$( ls -1 /udd001/sboper/CMStandalone/fsplit/GLMS/GCP1_cdf_001_$datetime*.txt )
sourcefile=`basename $inputfile`
if [ ! -d "$outputdirday" ]; then
mkdir -p "$outputdirday"
fi
if [ -f "$inputdir/$sourcefile" ]
then
cp "$inputdir/$sourcefile" "$outputdirday"
echo "output directory : $outputdirday"
awk -v outdir="$outputdirday" '
BEGIN { FS = "~"
filenameA = outdir"/SBSA_Amdocs_Customer_Create_Records.dat"
filenameM = outdir"/SBSA_Amdocs_Customer_Modify_Records.dat"
}
$12 == "A" { print >> filenameA}
$12 == "M" { print >> filenameM}
' "$inputdir/$sourcefile
"
fi