新しく作成されたファイルをリダイレクトするためにrmを使用せずにUNIXを削除します。

新しく作成されたファイルをリダイレクトするためにrmを使用せずにUNIXを削除します。

次の機能を使用してテキストファイルをフィルタリングし、新しい形式に整理します。

Unixリダイレクトコマンドを使用して>新しいファイルを作成します。

新しいファイルをすべて生成したくない場合はどうすればよいですか?

(例: ${file}_final_1.txt, ${file}ただ${パターン}.txt)

コマンドを使用していない後に削除しますかrm

filter(){
  cat ${file}_1.txt | grep -v ${pattern} > ${file}_final_1.txt                            
  cat ${file}_1.txt | grep ${pattern} > ${file}_only_${pattern}.txt                        
  cat ${file}_only_${pattern}.txt  | nawk -F '|' '{ print $NF}' > ${pattern}_TS.txt        
  paste ${pattern}_TS.txt ${file}_only_${pattern}.txt > ${pattern}_TS_file.txt
  cat ${pattern}_TS_file.txt | grep "|${DT}|" | grep ${pattern} | sort -r | head -1 > ${file}_f.txt
  cat ${file}_f.txt >> ${file}_final_1.txt
  dos2unix ${file}_final_1.txt ${file}_final.txt
}

答え1

  1. 必要に応じてパイプラインを接続できます。
  cat ${file}_1.txt | grep ${pattern} > ${file}_only_${pattern}.txt                        
  cat ${file}_only_${pattern}.txt  | nawk -F '|' '{ print $NF}' > ${pattern}_TS.txt

に取り替えることができる

cat ${file}_1.txt | grep ${pattern} | nawk -F '|' '{ print $NF}' > ${pattern}_TS.txt

ちょっと…もちろん、コマンドラインには限界がありますが、とても大きいです。これにより、getconf ARG_MAX文字数がわかります。

  1. 一部のアプリケーションがパイプへの入力を許可していない場合、または複数のファイルで簡単に使用できる場合...いつでも一時ファイルを一時ディレクトリにダンプできます。したがって、filter()関数は次のパターンに従うことができます。
filter(){
   TEMP_DIR=/tmp/dir_for_this_task_`date +%s`
   mkdir $TMP_DIR
   CUR_DIR=`pwd`
   cd $TMP_DIR

   .... your code with temp files

   cd $CUR_DIR
   rm -r $TMP_DIR
}

pushd/popd現在のディレクトリを覚えて一時ディレクトリに戻ることもできます。

関連情報