
Linuxのsdiffコマンドについての質問です。
sdiffでfile1とfile2を比較した場合、普通はfile1とfile2の間に自動的にタブもしくはスペースが挿入されてfile2の開始位置が縦に揃うようになります。(下の例1参照)
ところが日本語が混じった行に関しては縦にうまく揃ってくれず困っています。(下の例2参照)
このような場合でもうまく縦に揃えて出力できる良い方法はないでしょうか?
ご回答よろしくお願いします。
(等幅フォントで見てください。)
例1
aaa aaa
bbb | xxx
ddddd | yyyy ←file2が縦に揃って出力される
ee ee
例2
aaa aaa
bbb | xxx
ああ | いい ←期待する位置よりも右にずれる
ee ee
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
すみません、else と if の間はスペースです。
\tも不必要ですね。
sdiff file1.txt file2.txt |\
awk '{if($2=="<"){printf("%-50s%s\n",$1,$2)}\
else if (NF==2){printf("%-50s %s\n",$1,$2)}\
else{printf("%-50s| %s\n",$1,$3)}}'
多分、これをktermなどにペーストすればうまくいくのでは?
awkで1列目を50バイトの幅で表示するようにしています。
sdiffが表示する一致しない行のマーク|はいまの場合も同じように表示させるようにしています。
No.2
- 回答日時:
たぶん、それは日本語が問題ではなくて、
あとから出て来る単語の長さが長いと起こるようですね。
それならばこれでどうだ!
sdiff file1.txt file2.txt |\
awk '{if($2=="<"){printf("%-50s\t%s\n",$1,$2)}\
elseif (NF==2){printf("%-50s\t %s\n",$1,$2)}\
else{printf("%-50s\t| %s\n",$1,$3)}}'
ファイルに含まれる単語が50バイト以下と仮定してます。
それより長い単語の場合は50を適当にふやしてください。
また逆に、もっと短いのなら50を減らせばもっとくっついて表示されます。
No.1
- 回答日時:
こんばんわ~
等幅フォントでの見方がよくわからないので、問題を把握しきれてるかどうか自信ありませんが、
とりあえず、2バイト文字が入るとsdiffの出力がずれると思って回答します。
私の環境でやってみましたが、とくにズレるということはないようですよ。
ちなみに、バージョンは
sdiff (GNU diffutils) 2.8.1
です。(sdiff --versionで出ます。)
あるいは、下のようにフィルタして整形てみるとか。
sdiff file1 file2 | awk '{if(NF==2){print $1"\t "$2}else{print $1"\t"$2$3}}'
ただし、file1,file2はともに、
aaa
bbb
ああ
ee
のように、単語が空白のない形で1行に1つづつ並んでいると仮定しています。
この回答への補足
質問の例がわかりにくく、回答者の方にご迷惑おかけしました。少し補足します。
(1)gooの画面で入力したとき、半角スペースが複数続くと自動的に1つの半角スペースにされてしまうようで、質問の例の意図が伝わりにくくなってしまいました。
そこで半角スペースの変わりに_を使って例を書き直します。
(2)質問の例そのものが適切でありませんでした。全角文字が4文字以上あるとずれるようです。全角文字が多ければ多いほどずれる量も大きくなります。
例1
aaa__________aaa
bbb_______|__xxx
ddddd_____|__yyyy
ee___________ee
例2
aaa__________aaa
bbb_______|__xxx
ああああ___________|__いいい
ee___________ee
上の部分をメモ帳にコピーペーストすれば等幅で見られると思います。
使っているsdiffのバージョンは2.7です。
回答ありがとうございます。
2バイト文字が入るとsdiffの出力がずれるという問題ですが、4文字以上にならないと問題が起こらないようです。
awkはまだよく勉強していないので良くわかりませんが、回答して頂いたものをそのまま試してもうまくできませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで、カーソルの移動が異常です。 1 2022/06/15 20:54
- Excel(エクセル) [入力規則]のリストボックス内の“不揃いの林檎たち” 3 2022/09/15 18:32
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- Dropbox PCにあるDropboxのアカウントを確認するには 1 2022/08/20 10:08
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- PHP ファイルアップロードの上限を増やす 7 2023/06/23 12:50
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- Mac OS PATHを使ってcdなどで簡単に移動できるようになりたい 3 2023/05/13 14:22
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
bashでシングルクォート内の変...
-
ubuntu(linux)のシャットダウン...
-
ubuntuで デイスク/deb/loopと...
-
ログにserver reached MaxReque...
-
windowsxpと同じくらい軽いLinu...
-
shellscript内のコマンドを、su...
-
Ububtuでファイル共有できない...
-
Linux のシェルスクリプトの強...
-
Ubuntu on Xorgのログインについて
-
centos7 で最近起動後数時間経...
-
WineのRufusでデバイスを検知す...
-
lubuntuのインストールが終わり...
-
ubuntuのシャットダウンが進ま...
-
Windowsのローカルディレクトリ...
-
AWSでSSH接続をしたいのですが...
-
プログラミングPC、LinuxのOSパ...
-
Linuxのパーティション番号の変...
-
ssl_request_logの必要性について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ubuntu(linux)のシャットダウン...
-
Core 2 Duo の古いパソコンに最...
-
Linux のシェルスクリプトの強...
-
bashでシングルクォート内の変...
-
ユーザ名usr1でcentos(192.168....
-
Lubuntuでとにかく軽量のバージ...
-
ubuntuで デイスク/deb/loopと...
-
centos7サーバーがクライアント...
-
ubuntuのターミナルで書いたコ...
-
Ububtuでファイル共有できない...
-
Windowsのローカルディレクトリ...
-
ssh接続しようとしたらエラーメ...
-
Ubuntu on Xorgのログインについて
-
ubuntu 22日本語Remixのisoイメ...
-
ログにserver reached MaxReque...
-
shellscript内のコマンドを、su...
-
ubuntu proのデスクトップ版は...
-
ssl_request_logの必要性について
-
LinuxでWine使うとどのくらいWi...
-
LinuxのノートパソコンでDVDコ...
おすすめ情報