kesu <概要> kesu : 連続したレコードで同じキー項目を消す <書式> Usage : kesu [option] num=<n> <file> Option : -d<chr> -i<str> -h Version : Thu Apr 14 11:06:10 JST 2016 Edition : 1 <説明> <file> の第1フィールドから第 <n> フィールドまでをキーとして、連続し たレコードで同じキーがある場合、2行目以降のキーを空白に変換します。 -d オプションを指定すると、置換する空白文字を <chr> に変更することが できます。 -i オプションを指定すると、置換するキーフィールドを <str> に変更こと ができます。 -h オプションを指定すると、部分消去になり、行頭から一致したフィール ドを置換します。-d オプションまたは -i オプションと併用できます。 <例1> $ cat data 001 埼玉県 01 さいたま市 91 59 20 76 54 001 埼玉県 01 さいたま市 46 39 8 5 21 001 埼玉県 02 熊谷市 82 0 23 84 10 001 埼玉県 02 熊谷市 45 93 28 61 23 002 東京都 01 新宿区 30 50 71 36 30 002 東京都 01 新宿区 78 13 44 28 51 002 東京都 02 港区 39 22 13 76 08 002 東京都 02 港区 58 71 20 10 6 003 神奈川県 01 横浜市 52 91 44 9 0 003 神奈川県 01 横浜市 60 89 33 18 6 003 神奈川県 02 川崎市 92 56 83 96 75 003 神奈川県 02 川崎市 30 12 32 44 19 $ kesu num=2 data 001 埼玉県 01 さいたま市 91 59 20 76 54 01 さいたま市 46 39 8 5 21 02 熊谷市 82 0 23 84 10 02 熊谷市 45 93 28 61 23 002 東京都 01 新宿区 30 50 71 36 30 01 新宿区 78 13 44 28 51 02 港区 39 22 13 76 08 02 港区 58 71 20 10 6 003 神奈川県 01 横浜市 52 91 44 9 0 01 横浜市 60 89 33 18 6 02 川崎市 92 56 83 96 75 02 川崎市 30 12 32 44 19 <例2> ダミー文字を "@" に変えます $ kesu -d@ num=2 data 001 埼玉県 01 さいたま市 91 59 20 76 54 @@@ @@@@@@ 01 さいたま市 46 39 8 5 21 @@@ @@@@@@ 02 熊谷市 82 0 23 84 10 @@@ @@@@@@ 02 熊谷市 45 93 28 61 23 002 東京都 01 新宿区 30 50 71 36 30 @@@ @@@@@@ 01 新宿区 78 13 44 28 51 @@@ @@@@@@ 02 港区 39 22 13 76 08 @@@ @@@@@@ 02 港区 58 71 20 10 6 003 神奈川県 01 横浜市 52 91 44 9 0 @@@ @@@@@@@@ 01 横浜市 60 89 33 18 6 @@@ @@@@@@@@ 02 川崎市 92 56 83 96 75 @@@ @@@@@@@@ 02 川崎市 30 12 32 44 19 <例3> ダミーフィールドを "@" にします $ kesu -i@ num=2 data | keta 001 埼玉県 01 さいたま市 91 59 20 76 54 @ @ 01 さいたま市 46 39 8 5 21 @ @ 02 熊谷市 82 0 23 84 10 @ @ 02 熊谷市 45 93 28 61 23 002 東京都 01 新宿区 30 50 71 36 30 @ @ 01 新宿区 78 13 44 28 51 @ @ 02 港区 39 22 13 76 08 @ @ 02 港区 58 71 20 10 6 003 神奈川県 01 横浜市 52 91 44 9 0 @ @ 01 横浜市 60 89 33 18 6 @ @ 02 川崎市 92 56 83 96 75 @ @ 02 川崎市 30 12 32 44 19 <例4> 部分消去にします。 $ kesu -h num=4 data 001 埼玉県 01 さいたま市 91 59 20 76 54 46 39 8 5 21 02 熊谷市 82 0 23 84 10 45 93 28 61 23 002 東京都 01 新宿区 30 50 71 36 30 78 13 44 28 51 02 港区 39 22 13 76 08 58 71 20 10 6 003 神奈川県 01 横浜市 52 91 44 9 0 60 89 33 18 6 02 川崎市 92 56 83 96 75 30 12 32 44 19 <注意> フィールド数が <n> に満たない行は、そのまま出力されます。この場合、 キーは行全体になります。 $ cat data2 001 東京都 01 新宿区 91 59 20 76 54 001 東京都 01 新宿区 46 39 8 5 21 ----------------------------------- ----------------------------------- 001 東京都 02 中央区 82 0 23 84 10 001 東京都 02 中央区 30 50 71 36 30 $ kesu num=2 data2 001 東京都 01 新宿区 91 59 20 76 54 01 新宿区 46 39 8 5 21 ----------------------------------- 001 東京都 02 中央区 82 0 23 84 10 02 中央区 30 50 71 36 30