teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

テキスト修正

2019/01/26 03:17

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -13,10 +13,10 @@
13
13
  8 14 1 3 131
14
14
  9 75 20 2 178
15
15
  10 42 6 1 154
16
- [q170948]$ export COL1=`head -1 test.csv | cut -f 2`
16
+ [q170948]$ COL1=`head -1 test.csv | cut -f 2`
17
- [q170948]$ export COL2=`sort -n -k 3 -r test.csv | head -1 | cut -f 3`
17
+ [q170948]$ COL2=`sort -n -k 3 -r test.csv | head -1 | cut -f 3`
18
- [q170948]$ export COL3=`tail -1 test.csv | cut -f 4`
18
+ [q170948]$ COL3=`tail -1 test.csv | cut -f 4`
19
- [q170948]$ export COL4=`sort -n -k 5 test.csv | head -1 | cut -f 5`
19
+ [q170948]$ COL4=`sort -n -k 5 test.csv | head -1 | cut -f 5`
20
20
  [q170948]$ echo $COL1 $COL2 $COL3 $COL4
21
21
  40 20 1 100
22
22
  [q170948]$

4

テキスト修正

2019/01/26 03:17

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -22,7 +22,7 @@
22
22
  [q170948]$
23
23
  ```
24
24
 
25
- 上記を使って、test.csv を置き換えるコマンドラインを一行で書くと、ちょっと長いですが、以下のようになります。
25
+ 上記を使って、test.csv を置き換えるコマンドラインを一行で書くと、以下のようになります。
26
26
 
27
27
  ```
28
28
  [q170948]$ cat test.csv
@@ -43,6 +43,6 @@
43
43
 
44
44
  ```
45
45
 
46
- 一行で書くと長いので、シェルスクリプトに書いておいて、ターミナルからはそのスクリプトを使うようにすればよいかと思います。
46
+ 上記のように、一行で書くと長いので、シェルスクリプトに書いておいて、ターミナルからはそのスクリプトを使うようにすればよいかと思います。
47
47
 
48
48
  参考になれば幸いです。

3

テキスト修正

2019/01/26 02:56

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -1,10 +1,8 @@
1
1
  こんにちは
2
2
 
3
- 一例として、以下でどうでしょう? (入力するCSVを `test.csv`としました。)
4
-
5
- 出力する一行の各を作るコマンドは、`head`, `tail`, `sort`, `cut`を使って、それぞれ以下のように書けます。
3
+ 変換後の一行を構成する4つカラムのを作るコマンドは、`head`, `tail`, `sort`, `cut`を使って、それぞれ以下のように書けます。(入力するCSVファイル名を `test.csv`としました。)
6
4
  ```
7
- [jun68ykt@mbp15 q170948]$ cat test.csv
5
+ [q170948]$ cat test.csv
8
6
  1 40 18 3 141
9
7
  2 33 5 1 110
10
8
  3 2 15 2 100
@@ -15,19 +13,19 @@
15
13
  8 14 1 3 131
16
14
  9 75 20 2 178
17
15
  10 42 6 1 154
18
- [jun68ykt@mbp15 q170948]$ export COL1=`head -1 test.csv | cut -f 2`
16
+ [q170948]$ export COL1=`head -1 test.csv | cut -f 2`
19
- [jun68ykt@mbp15 q170948]$ export COL2=`sort -n -k 3 -r test.csv | head -1 | cut -f 3`
17
+ [q170948]$ export COL2=`sort -n -k 3 -r test.csv | head -1 | cut -f 3`
20
- [jun68ykt@mbp15 q170948]$ export COL3=`tail -1 test.csv | cut -f 4`
18
+ [q170948]$ export COL3=`tail -1 test.csv | cut -f 4`
21
- [jun68ykt@mbp15 q170948]$ export COL4=`sort -n -k 5 test.csv | head -1 | cut -f 5`
19
+ [q170948]$ export COL4=`sort -n -k 5 test.csv | head -1 | cut -f 5`
22
- [jun68ykt@mbp15 q170948]$ echo $COL1 $COL2 $COL3 $COL4
20
+ [q170948]$ echo $COL1 $COL2 $COL3 $COL4
23
21
  40 20 1 100
24
- [jun68ykt@mbp15 q170948]$
22
+ [q170948]$
25
23
  ```
26
24
 
27
25
  上記を使って、test.csv を置き換えるコマンドラインを一行で書くと、ちょっと長いですが、以下のようになります。
28
26
 
29
27
  ```
30
- [jun68ykt@mbp15 q170948]$ cat test.csv
28
+ [q170948]$ cat test.csv
31
29
  1 40 18 3 141
32
30
  2 33 5 1 110
33
31
  3 2 15 2 100
@@ -38,10 +36,10 @@
38
36
  8 14 1 3 131
39
37
  9 75 20 2 178
40
38
  10 42 6 1 154
41
- [jun68ykt@mbp15 q170948]$ echo `head -1 test.csv | cut -f 2` `sort -n -k 3 -r test.csv | head -1 | cut -f 3` `tail -1 test.csv | cut -f 4` `sort -n -k 5 test.csv | head -1 | cut -f 5` > test.csv
39
+ [q170948]$ echo `head -1 test.csv | cut -f 2` `sort -n -k 3 -r test.csv | head -1 | cut -f 3` `tail -1 test.csv | cut -f 4` `sort -n -k 5 test.csv | head -1 | cut -f 5` > test.csv
42
- [jun68ykt@mbp15 q170948]$ cat test.csv
40
+ [q170948]$ cat test.csv
43
41
  40 20 1 100
44
- [jun68ykt@mbp15 q170948]$
42
+ [q170948]$
45
43
 
46
44
  ```
47
45
 

2

テキスト修正

2019/01/26 02:42

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -45,4 +45,6 @@
45
45
 
46
46
  ```
47
47
 
48
+ 一行で書くと長いので、シェルスクリプトに書いておいて、ターミナルからはそのスクリプトを使うようにすればよいかと思います。
49
+
48
50
  参考になれば幸いです。

1

テキスト修正

2019/01/26 02:35

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  一例として、以下でどうでしょう? (入力するCSVを `test.csv`としました。)
4
4
 
5
+ 出力する一行の各列を作るコマンドは、`head`, `tail`, `sort`, `cut`を使って、それぞれ以下のように書けます。
5
6
  ```
6
7
  [jun68ykt@mbp15 q170948]$ cat test.csv
7
8
  1 40 18 3 141
@@ -20,11 +21,28 @@
20
21
  [jun68ykt@mbp15 q170948]$ export COL4=`sort -n -k 5 test.csv | head -1 | cut -f 5`
21
22
  [jun68ykt@mbp15 q170948]$ echo $COL1 $COL2 $COL3 $COL4
22
23
  40 20 1 100
24
+ [jun68ykt@mbp15 q170948]$
23
25
  ```
26
+
24
- 一行で書くと
27
+ 上記を使って、test.csv を置き換えるコマンドラインを一行で書くと、ちょっと長いですが、以下のようになります。
28
+
25
29
  ```
30
+ [jun68ykt@mbp15 q170948]$ cat test.csv
31
+ 1 40 18 3 141
32
+ 2 33 5 1 110
33
+ 3 2 15 2 100
34
+ 4 26 11 1 111
35
+ 5 85 19 2 197
36
+ 6 11 9 1 120
37
+ 7 11 4 1 119
38
+ 8 14 1 3 131
39
+ 9 75 20 2 178
40
+ 10 42 6 1 154
26
- [jun68ykt@mbp15 q170948]$ echo `head -1 test.csv | cut -f 2` `sort -n -k 3 -r test.csv | head -1 | cut -f 3` `tail -1 test.csv | cut -f 4` `sort -n -k 5 test.csv | head -1 | cut -f 5`
41
+ [jun68ykt@mbp15 q170948]$ echo `head -1 test.csv | cut -f 2` `sort -n -k 3 -r test.csv | head -1 | cut -f 3` `tail -1 test.csv | cut -f 4` `sort -n -k 5 test.csv | head -1 | cut -f 5` > test.csv
42
+ [jun68ykt@mbp15 q170948]$ cat test.csv
27
43
  40 20 1 100
44
+ [jun68ykt@mbp15 q170948]$
45
+
28
46
  ```
29
47
 
30
48
  参考になれば幸いです。