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

回答編集履歴

5

実際の状況と質問文で差があるかもしれない(けどawkは処理できている)ことについて言及。

2021/09/18 08:55

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -14,4 +14,7 @@
14
14
  ```
15
15
  $ echo "test1,test2, ,test4" | awk -F, '{print $1","$2","$3","$4}'
16
16
  test1,test2, ,test4
17
- ```
17
+ ```
18
+
19
+ 問題点を提示するためにechoを使用しているだけで実際の処理は違うのかもしれませんが、
20
+ 少なくとも上記の例ではawkは複数の空白を1文字にまとめること無く処理できています。

4

表現ちょっと修正。

2021/09/18 08:55

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  test1,test2, ,test4
10
10
  ```
11
11
 
12
- echoを上記形に直せば意図通り表示されると思います。
12
+ echoの側を修正すれば意図通り表示されると思います。
13
13
 
14
14
  ```
15
15
  $ echo "test1,test2, ,test4" | awk -F, '{print $1","$2","$3","$4}'

3

「"」でも「'」でもどちらでも可能であることを追記。

2021/09/18 08:38

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  awkの問題ではなく、echoの段階で空白1文字になってしまっています。
2
2
  これはお使いのシェルが引数区切りの空白の連続を1文字にまとめてしまうためです。
3
- ダブルクォーテーションで囲めばこれを回避できます。
3
+ クォーテーション(「"」または「'」)で囲めばこれを回避できます。
4
4
 
5
5
  ```
6
6
  $ echo test1,test2, ,test4

2

表現ちょっと修正。

2021/09/18 08:37

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  awkの問題ではなく、echoの段階で空白1文字になってしまっています。
2
- これはお使いのシェルが引数区切りのn連続した空白を1文字にまとめてしまうためです。
2
+ これはお使いのシェルが引数区切りの空白の連続を1文字にまとめてしまうためです。
3
3
  ダブルクォーテーションで囲めばこれを回避できます。
4
4
 
5
5
  ```

1

表現ちょっと修正。

2021/09/18 08:34

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -1,5 +1,5 @@
1
- awkの問題ではなく、echoの段階で空白1文字になっています。
1
+ awkの問題ではなく、echoの段階で空白1文字になってしまっています。
2
- これはお使いのシェルが引数区切りの空白を1文字にまとめてしまうためです。
2
+ これはお使いのシェルが引数区切りのn連続した空白を1文字にまとめてしまうためです。
3
3
  ダブルクォーテーションで囲めばこれを回避できます。
4
4
 
5
5
  ```