Cut
我可以使用單個剪切命令為輸入文件的兩個欄位創建兩個輸出文件嗎?
我可以編寫一個 shell 腳本來循環執行它,但是是否有使用終端的單行解決方案?
不是一個
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 次
cut
呼叫,使用支持程序替換的 shell,如 AT&T ksh、zsh 或 bash:< file tee >(cut -f2 > file2) | cut -f1 > file1
請注意,
ksh
不要bash
等待該命令cut
在程序替換中執行,因此在這些 shell 中,file2
在您執行下一個命令時可能尚未完成。