こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

【UNIX】echoコマンドのタブがずれる

solaris環境(SunOS 5.10)で日本語を含む文字列を標準出力させた際に、タブの位置が1バイト分後ろにずれてしまいます。

◼︎コマンド
(1)echo ”あ¥ta”
(2)echo ”aa¥ta”

◼︎出力結果
※スマホから入力しているため、空白を△として表記させて頂きます。
どちらもタブ一つ分の入力しかしていません。
(1)あ△△△△△a
(2)aa△△△△a



(1)について、出力結果が想定より1バイト分後ろにずれて出力される。
(2)の位置からaが始まるのが理想なのですが、原因などわからないでしょうか。

実際にやりたいのは、日本語とタブを複数含む文字列を標準出力させた後、日本語を含まない複数のタブを含む文字列を何行か標準出力させて、区切り位置を綺麗に見せたいです。

全然関係ないかもしれないですが、環境変数は下記のようになっています。
LANG=ja_JP.PCK
SHELL=/sbin/sh


宜しくお願い致します。

投稿日時 - 2015-01-05 16:56:12

QNo.8881061

困ってます

このQ&Aは役に立ちましたか?

20人が「このQ&Aが役に立った」と投票しています

回答(2)

リダイレクトしてエディタ等で見るとかではダメですか?

あるいは次のようにするとか…
gawk 'BEGIN{print "a\ta";print "あ\ta"}' | less

投稿日時 - 2015-01-07 00:41:30

お礼

回答ありがとうございます。

教えていただいたやり方だとたしかに文字位置が揃いました!
できればtmpファイルのようなものは作らずに標準出力で対応したかったので、下のやり方でもうちょっと検討してみます。

情報提供ありがとうごさいました!

投稿日時 - 2015-01-20 18:06:29

ANo.1

日本語文字は2バイト(2文字)として数えられているためですね。
簡単には対処できないですね。

投稿日時 - 2015-01-05 18:10:33

お礼

回答ありがとうございます。

やっぱり難しいですかね。。
色々検討してみます。
ありがとうございますm(._.)m

投稿日時 - 2015-01-06 10:32:40