我的目标是创建一个bash文件,该文件计算大约16个文件中的行,每个文件都有一个日期,并将以下(16次)发送到.csv文件。
到目前为止,我已经设法计算了行数,但.csv文件很乱,需要修剪并适合csv:Ex:
1500 FNB_EgTrans_20171004.txt
我的目标是让它看起来像这样:1500,EgTrans,20171004
有人可以向我解释为什么我的 tr 使用 cat 的下方方法无法按预期工作?谢谢。
cat $reccnt | tr ' FNB_' ',' | tr '201' ',' < $reccnt
以下是需要详细说明的整个代码:
#!/bin/bash
cd /ssinput/NY_AML/
reccnt=ny_row_count.csv
activedate='100000'
if [ -e $reccnt ];
then
rm $reccnt
else
touch $reccnt
chmod 755 $reccnt
fi
ls -t1 FNB*|head -15 |cut -c 13- > ny_activedate.txt #second tail or cut?
activedate=$(cat ny_activedate.txt)
echo $activedate
wc -l *$activedate | head -16 > $reccnt
reccnt="${reccnt##*( )}"
cat $reccnt | tr 'FNB' ',' | tr '201' ',' < $reccnt`
答案 0 :(得分:0)
您可以更改
inputfile=ny_row_count.csv
sed 's/ FNB_/,/g' ${inputfile} > ${inputfile}.tmp
sed 's/_201/,201/g' ${inputfile}.tmp > ${inputfile}
rm ${inputfile}.tmp
到
inputfile=ny_row_count.csv
sed -e 's/ FNB_/,/g' -e 's/_201/,201/g' ${inputfile} > ${inputfile}.tmp
mv ${inputfile}.tmp ${inputfile}
或
inputfile=ny_row_count.csv
sed 's/ FNB_/,/g; s/_201/,201/g' ${inputfile} > ${inputfile}.tmp
mv ${inputfile}.tmp ${inputfile}