シングルカットコマンドを使用して、入力ファイルの2つのフィールドに対して2つの出力ファイルを生成できますか?

シングルカットコマンドを使用して、入力ファイルの2つのフィールドに対して2つの出力ファイルを生成できますか?

ループでこれを行うためのシェルスクリプトを書くことができますが、ターミナルを使用する1行の解決策はありますか?

ベストアンサー1

コマンドではありませんcut。あなたはこれを行うことができますawk

awk -F '\t' '{print $1 > "file1"; print $2 > "file2"}' < file

または、各フィールドに対して次の操作を行います。

awk -F '\t' '{for (i = 1; i <= NF; i++) print $i > "file" i}' < file

あるいは、ファイルを2回読み取らないようにパイプと2つの呼び出しを使用したくない場合は、cutプロセスの置き換えをサポートするAT&T ksh、zsh、bashなどのシェルを使用してください。

< file tee >(cut -f2 > file2) | cut -f1 > file1

注意してくださいkshbash待つcutこのコマンドをプロセスオーバーライドで実行するには、これらのシェルでそれfile2以降に次のコマンドを実行したときにまだ完了していない可能性があります。

おすすめ記事