ループでこれを行うためのシェルスクリプトを書くことができますが、ターミナルを使用する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
注意してくださいksh
。bash
待つcut
このコマンドをプロセスオーバーライドで実行するには、これらのシェルでそれfile2
以降に次のコマンドを実行したときにまだ完了していない可能性があります。