2017-10-13 4 views
-1

注:コマンドのgrep、sedのAWK、UNIXでのperlgrep、sed awk、perlを使用せずに1行のコマンドとして切り取りと貼り付けコマンドを使用する方法?

を避けるため、私は(ファイル内の各コマンドの結果を保存)カット&ペーストコマンドの順序を記述しようとしていますファイル内のすべての名前を反転(下)のショートリストを作成し、姓の後に昏睡状態を設定します(たとえば、bill johnsonはjohnson、billとなります)。私が最終候補リストからカットすることができますが、同じコマンドラインでの私のFileNewファイルに貼り付けするかどうかはわからない

2233:charles harris :g.m.  :sales  :12/12/52: 90000 
9876:bill johnson :director :production:03/12/50:130000 
5678:robert dylan :d.g.m. :marketing :04/19/43: 85000 
2365:john woodcock :director :personnel :05/11/47:120000 
5423:barry wood  :chairman :admin  :08/30/56:160000 

は、ここに私のファイルの最終候補リストです。ここでは、カットのために私のコードです:

cut -d: -f2 shortlist 

結果:今

charles harris 
bill johnson 
robert dylan 
john woodcock 
barry wood 

は私が猫のFileNew、結果は以下のようになりますと、これは私のFileNewファイルに貼り付けることにしたいと

harris, charles 
johnson, bill 
dylan, robert 
woodcock, john 
wood, barry 

私にこれを案内してください。ありがとうございました。 awkcolumn

+0

以下の答えで運がいいですか? – randomir

答えて

0

:付き

awk -F'[[:space:]]*|:' '{$2=$2","$3;$3=""}' file | column -t 
0

cutpasteのみ(およびprocess substitution <(cmd)):プロセス置換はあなたのシェルで利用できません

$ paste -d, <(cut -d: -f2 file | cut -d' ' -f2) <(cut -d: -f2 file | cut -d' ' -f1) 
harris,charles 
johnson,bill 
dylan,robert 
woodcock,john 
wood,barry 

場合(以降それはPOSIXで定義されていません必要であれば

$ cut -d: -f2 file | cut -d' ' -f1 >first 
$ cut -d: -f2 file | cut -d' ' -f2 >last 
$ paste -d, last first 

:、しかし)bashzshkshでサポートされてfirstlastは姓のみ)を保持し、最初の名前を保持している(、あなたが名前付きパイプを使用するか、簡単に、ファイルへの中間結果を保存しますにはと最後の名前の間に空白が含まれていますが、は3つのソース(中間のものは/dev/null、または、またはより小さい<(:) - プロセス置換のnullコマンドのように)であり、2つのリストからデリミターを再利用できます(コンマとスペース):

$ paste -d', ' <(cut -d: -f2 file | cut -d' ' -f2) <(:) <(cut -d: -f2 file | cut -d' ' -f1) 
harris, charles 
johnson, bill 
dylan, robert 
woodcock, john 
wood, barry 
関連する問題