入力ファイルで複数のコマンドを実行し、それを新しい出力ファイルに文字列で囲む方法

入力ファイルで複数のコマンドを実行し、それを新しい出力ファイルに文字列で囲む方法

input.txtファイルから複数のコマンドを順番に実行し、新しい.csvファイルに出力したいと思います。すべてのコマンドは個別に実行されると正常に実行されますが、{&&または;として実行すると何も起こりません。 }

私のコマンドは次のとおりです。

cat input_file.txt > output_file.csv
   awk 'NR % 13 == 0' 
   sed -i '1i id,surface area (mm^2),gray matter volume (mm^3),avg
   cortical thickness +-sd,mean curvature,gaussian curvature,folding
   index,curvature index,hemi,ROI' 
   awk -F"/" '$1=$1' OFS="\t" 
   sed -e 's/\s\+/,/g' 
   awk '{ print $10 " " $0}'   >> output_file.csv

これらすべてのコマンドを実行し、前のコマンドの後に各コマンドを実行する方法を知っている人はいますか?
とても感謝しています!

ベストアンサー1

あなたはしたいですか?チェーン1つの出力から次の入力まで?その場合は、コマンドをパイプに「接続」する必要があります。これにより、最初のプログラムの出力が次のプログラムの入力になります。

date -u

2019年10月15日 17:58:20 UTC

date -u | sed 's/ /./'

2019年3月15日 17:58:20.UTC

だから、あなたは実行することができます順番にパイプ文字|を使用して接続します。

あるいは、これらすべての出力を独立して取得するには、サブシェルを使用できます。 Bashでは、次のことができます。

(command1.sh;command2.sh;command3.sh) >> output.txt

";"、"&&"、改行文字などを使用して別のコマンドを実行できます。

おすすめ記事