0

私はスクリプト作成に非常に慣れていないので、これがばかばかしいほど明白な質問である場合はご容赦ください。私はBourneシェルで予定追跡スクリプトを書いています(残念ながらBourneを使用する必要があります)。予定を日付順に並べ替える必要があります。各予定は、コロンで区切られた7つの列で構成されています。

1:26:2013:土曜日:16.00:17.30:バーベキュー
1:24:2013:木曜日:14.00:15.10:CSSミーティング
1:25:2013:金曜日:12.00:12.30:ビジネスランチ
1:27:2013:日曜日:10.00 :17.30:ボランティアビーチクリーンアップ
2:24:2013:日曜日:20.00:24.00:パーティー
2:11:2013:月曜日:16.00:17.30:歯科医の訪問
1:24:2013:木曜日:11.00:11.45:プロジェクトミーティング
3:24 :2013:日曜日:8.00:11.30:教会のピクニック
2:8:2013:金曜日:12.00:17.30:ハロートーナメント
1:19:2013:土曜日:16.00:20.30:ポーカー

これが私がこれまでに持っているものであり、コロン区切り文字を削除することを除いて、私が望むことを正確に実行します。awk -F : '{print $1, $2, $3, $4, $5, $6, $7 |"sort -k 1,1 -k 2,2n -k3,3n -n -o appts.txt"}' appts.txt

1192013土曜日16.0020.30ポーカー1242013
木曜日11.0011.45プロジェクトミーティング1242013
木曜日14.0015.10CSSミーティング1252013
金曜日12.0012.30ビジネスランチ
1262013土曜日16.0017.30バーベキュー

コロン区切り文字を元に戻すにはどうすればよいですか?

4

2 に答える 2

3

最も簡単な答えは、そもそもそれらを削除しないことです。少なくとも私のバージョンのソートでは、元のファイルで期待どおりに機能します。

sort -k 1,1 -k 2,2n -k3,3n -n -o appts2.txt < appts.txt

ただし、フィールドセパレータ()の明示的な指定もサポートしています-t。したがって、安全のために、次のように言うことができます。

sort -k 1,1 -k 2,2n -k3,3n -n -t: -o appts2.txt < appts.txt
于 2013-03-14T01:51:07.173 に答える
2

私はばかげています...そもそもなぜawkを使用したのかわかりません。

これは私が望んでいたことをうまくやった

sort -k 1,1 -k 2,2n -k3,3n -n -t: -o appts.txt appts.txt
于 2013-03-14T01:50:50.823 に答える