2021年8月31日火曜日
Fcitx5
2021年8月27日金曜日
Wayland
x11
wayland
bash: x11: コマンドが見つかりません
x11
plasmawayland
plasma
Type=wayland
Type=x11
DESKTOP_SESSION=plasmawayland
XDG_SESSION_TYPE=wayland
WAYLAND_DISPLAY=wayland-0
QT_WAYLAND_FORCE_DPI=96
Xorgの場合
... (Xだと何も返らない)
$ env | grep -i DESKTOP_SESSION
DESKTOP_SESSION=plasma
2021年7月8日木曜日
バクラウ
2021年6月11日金曜日
neo4jの拡張プラグイン apoc.export.csv.query の例2
sample.csv
id,name,add,job,relation
a001,田中,東広島,販売,a002
a002,山本,北広島,販売,a003
a003,佐藤,久留米,飲食,a001
a004,山崎,,建設,a002
a005,村上,東久留米,販売,a002
a006,広田,南大東島,醸造,a001
$ sudo neo4j start
$ cypher-shell -u XXXXX -p XXXX
//sample.csvからノードを作成
neo4j@neo4j> LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS row
MERGE (p:Person{ID:coalesce(row.id,"Unknown"), NAME:coalesce(row.name,"Unknown"),ADD:coalesce(row.add,"Unknown"), JOB:coalesce(row.job,"Unknown"), REL:coalesce(row.relation,"Unknown")});
//リレーションシップの作成
neo4j@neo4j> load csv with headers from "file:///sample.csv" as row
match (p1:Person{ID:row.id})
match (p2:Person{ID:row.relation})
merge (p1)-[r:Know]->(p2);
0 rows available after 262 ms, consumed after another 0 ms
Created 6 relationshi
// 田中さんグループ Tanaka_G.csv への出力。[:Know]の'*'はrelation shipが続く限り全部。
neo4j@neo4j> with "match (a{NAME:'田中'})-[:Know*]->(b)
return b.NAME as name, b.ADD as address" as Friends
call apoc.export.csv.query(Friends, "Tanaka_G.csv",{})
yield file // これをしないと
return file; // returnが無いエラー
+----------------+
| file |
+----------------+
| "Tanaka_G.csv" |
+----------------+
1 row available after 21 ms, consumed after another 8 ms
$ cat Tanaka_G.csvneo4j@neo4j> match (n) detach delete n;
"name","address"
"山本","北広島"
"佐藤","久留米"
"田中","東広島"
neo4j@neo4j>:quit
$ sudo neo4j stop
---------------------
neo4jブラウザで同じことをやってみる。
// systemctlからneo4jを起動すると、起動表示はなくなる。
$ systemctl start neo4j
ブラウザから localhost:7474 Username:XXXXX Password:XXXXX
nao4j$ LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS row
MERGE (p:Person{ID:coalesce(row.id,"Unknown"), NAME:coalesce(row.name,"Unknown"),ADD:coalesce(row.add,"Unknown"), JOB:coalesce(row.job,"Unknown"), REL:coalesce(row.relation,"Unknown")}); // Ctrl+Enter
neo4j$ LOAD CSV WITH HEADERS FROM "file:///sample.csv" AS row
MATCH (p1:Person{ID:row.id})
MATCH (p2:Person{ID:row.relation})
MERGE (p1)-[r:Know]->(p2); // Ctrl+Enter
// 本題とはちがうけどGraph表示
// neo4j$ MATCH (p1)-[r:Know]->(p2) RETURN p1,r,p2;
neo4j$ MATCH (a{NAME:'田中'})-[r:Know*]->(b) RETURN b.NAME AS name, b.ADD AS address; // Enter
// 本題とはちがうけどGraph表示
// neo4j$ MATCH (a{NAME:'田中'})-[r:Know*]->(b) RETURN a,r,b;
$ cat export.csvneo4j$ MATCH (n) DETACH DELETE n;
name,address
山本,北広島
佐藤,久留米
田中,東広島
Clear local data
$ systemctl stop neo4j
以上、素人の個人的実験でした。
2021年6月10日木曜日
neo4jの拡張プラグイン apoc.export.csv.query の例1
sample.csv
id,name,add,job,relation
a001,田中,東広島,販売,a002
a002,山本,北広島,販売,a003
a003,佐藤,久留米,飲食,a001
a004,山崎,,建設,a002
a005,村上,東久留米,販売,a002
a006,広田,南大東島,醸造,a001
$ cypher-shell -u neo4j -p XXXX
// coalesce(a,"b") は、セルがaならaを返す。なければ文字列bを返す
neo4j@neo4j> LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS row
MERGE (p:Person{ID:coalesce(row.id,"Unknown"), NAME:coalesce(row.name,"Unknown"),ADD:coalesce(row.add,"Unknown"), JOB:coalesce(row.job,"Unknown"), REL:coalesce(row.relation,"Unknown")});
neo4j@neo4j> call apoc.export.csv.query("match (a:Person) where a.ADD contains '広島' return a.NAME, a.ADD", "result.csv", {});
+-------------------------------------------------------------------------------------------------------------------------------------+
| file | source | format | nodes | relationships | properties | time | rows | batchSize | batches | done | data |
+-------------------------------------------------------------------------------------------------------------------------------------+
| "result.csv" | "statement: cols(2)" | "csv" | 0 | 0 | 4 | 1 | 2 | 20000 | 1 | TRUE | NULL |
+-------------------------------------------------------------------------------------------------------------------------------------+
1 row available after 23 ms, consumed after another 63 ms
別ターミナルからファイルを見てみる$ cat /var/lib/neo4j/import/result.csv
"a.NAME","a.ADD"
"田中","東広島"
"山本","北広島"
neo4j@neo4j>:quit
$ sudo neo4j stop // 終了
$ sudo neo4j start
ブラウザ localhost:7474 Username: XXXXX Pssword:XXXXXX
neo4j$ LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS row
MERGE (p:Person{ID:coalesce(row.id,"Unknown"), NAME:coalesce(row.name,"Unknown"),ADD:coalesce(row.add,"Unknown"), JOB:coalesce(row.job,"Unknown"), REL:coalesce(row.relation,"Unknown")}); //Ctrl+Enter
neo4j$ MATCH (a:Person) WHERE a.ADD CONTAINS '広島' RETURN a.NAME, a.ADD; //Enter
出力をターミナルから見てみる$ cat export.csv
a.NAME,a.ADD
田中,東広島
山本,北広島
2021年6月9日水曜日
neo4jの拡張プラグイン apocの設定
neo4jで検索したリレーションやノードは'TEXT'としてコピペはできるけど、ファイルとして出力したい → 'apoc'という拡張プラグインで csv出力できるらしい。
環境:
Debian 10, neo4j 4.2.7 community 版, Cypher-Shell 4.2.7
設定:
neo4j community インストール済ならば、/var/lib/neo4j/labs/apoc-4.2.0.4-core.jar がすでに入っている。ただし同 README.txt記述の設定と export設定が必要。
(neo4j サーバが動いてない状態で)
1) $ sudo cp /var/lib/neo4j/labs/apoc-4.2.0.4-core.jar /var/lib/neo4j/plugins/
2) /etc/neo4j/neo4j.conf 262行目あたりに追記
dbms.security.procedures.unrestricted=apoc.*
3) /etc/neo4j/neo4j.conf 最後辺りに追記
apoc.export.file.enabled=true
apoc.import.file.enabled=true
chown neo4j:neo4j apoc-4.2.0.4-core.jar
chmod 755 apoc-4.2.0.4-core.jar
の手順記事もあった。やらなくても動いた。
動作確認:
$ sudo neo4j start // neo4jサーバ起動
$ cypher-shell -u neo4j -p XXXX //cypher-shell起動
neo4j@neo4j> return apoc.version(); //⇠neo4jブラウザからでも可
+----------------+
| apoc.version() |
+----------------+
| "4.2.0.4" |
+----------------+ // 受け付けるっぽい
neo4j@neo4j> merge (a:Person{name:'Yamada', age:tointeger(30), address:'Yamanashi'}); //ノード作成して実験
neo4j@neo4j> call apoc.export.csv.all("out_node.csv", {}); //⇠neo4jブラウザからでも可 out_node.csvに出力
別ターミナルから デフォルト import先の /var/lib/neo4j/import を見てみる。
(neo4j.confで import先を変更してる場合は、そちらに出力される)
$ ls -l /var/lib/neo4j/import/out_node.csv
-rw-r--r-- 1 root root out_node.csv
$ cat out_node.csv
"_id","_labels","address","age","name","_start","_end","_type"
"0",":Person","Yamanashi","30","Yamada",,, // なんか OKみたい
neo4j@neo4j> match (n) detach delete n; // 以上、クリーニング
neo4j@neo4j> :exit // cypher-shell終了
$ sudo neo4j stop // neo4jサーバ停止
まとめ:
CALL apoc.export.csv.all("出力ファイル名.csv", {}); が得られた。
他に apoc.export.csv.query というプロシージャもある。
2021年5月29日土曜日
Cypher-shellと neo4j browser
2021年4月24日土曜日
neo4jメモ
neo4j ブラウザでの使い方
使用可能なブラウザ
Neo4jにはブラウザが必要。使えるブラウザは Edge, Chrome, Firefox。Chrome系の iron, Firefox系の Waterfox classicでも動いた。
入力の仕方 Enterキー
入力欄neo4j$
Enterキーの仕方。- 1行パターン
コード [Enter]- 複数行パターン
コード [Shift+Enter] 続きコード [Enter] ...... [Enter] コード終了 実行 [Ctrl+Enter]エラーが出たら、その上に表示される入力ソースを訂正して [Ctrl+Enter]
Hello world! と表示するだけの例
(1個のノードのバリューを表示するだけ)
1. ターミナルで systemctl start neo4j → ルートパスワード
または、sudo neo4j start → ユーザパスワード。neo4jはサービスで動いてるのでターミナルは閉じても開きっぱなしでもかまわない。
2. ブラウザを起動。アドレス欄に "http://localhost:7474/" と入力。
3. Usernameと Password (初期値は neo4j, neo4j or 自分の設定ワード)。初めてのときはpasswordを変更しないとログインできない。
4. 入力欄 neo4j$ に
CREATE (p:Smile{message:"Hello \n world!"}) /// [Shift+Enter]
RETURN p /// [Ctrl+Enter]
5. 終了。左サイドウインドの下の方の赤いアイコン→Clear local data→Clear local data→ログイン画面に戻ったらブラウザを終了。
6. ターミナルで、systemctl stop neo4j → ルートパスワード または sudo neo4j stop → ユーザパスワード
素人の雑感
グラフ表示が出なかったら、左の"Graph"アイコンをクリック (OSによって上記 \nは、\r\nかも)。
上の例なら、全部小文字でも構わない。任意に付けたラベル(上のSmile)は、大文字と小文字は別の要素になる。(入力は cypher-shellに渡してるだけ?)
createで作ったノードは間違って入力したものもどんどん貯まる。上の例言えば
MATCH (p) RETURN p
とすれば間違い入力分も表示する。MATCH (p) DELETE p
で消せる。MATCH (n) RETURN n
ならその他も全て表示。まとめて全部消すにはMATCH (n) DETACH DELETE n
ブラウザにコードのコピペできないとき
ネット上のコードサンプルや、テキストで書いたコードをブラウザのコード欄 'neo4j$ 'にマウス右ボタンでコピー、左ボタンでペーストできない場合、 3or5ボタンマウスなら真ん中ボタンでペーストするとうまく行くことがある。ノード(グラフの○、デフォルトで300)が増えると一気に処理が遅くなる (総当り的?)。
この手のソフトはマルチコアでもCore 1コしか使わないので、早いクロックのCPUが向いてる。バージョンアップでマルチコアで処理するようになった。試しに自治体の Covid19情報から、感染の経路をたどってみた (濃厚接触者不明と2次で経路が途絶えたものを除くノード5600程)。(関連 graphviz)
2021年4月19日月曜日
Debian 10にneo4jをインストール
neo4j バージョン4.2 community 版をインストール。
neo4j docsの‘1.2. Add the repository’ から、
$ wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add - echo 'deb https://debian.neo4j.com stable 4.2' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
$ sudo apt-get update
///
$ sudo apt install neo4j
$ neo4j --version
neo4j 4.2.5 ⇠インストールされたバージョン
/// install 完了
2) 設定
基本的な設定は、/etc/neo4/neo4j.conf で行う。
「WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.」の対策。
$ systemctl start neo4j で動かす場合
/usr/lib/systemd/system/neo4j.service
[Service]
LimitNOFILE=60000 ⇠こうなってた
$ sudo neo4j start で動かす場合
/etc/systemd/user.conf
[Manager]
DefaultLimitNOFILE=60000 ⇠ 変更
3) ディレクト $ sudo neo4j start 時に表示される
Directories in use:
home: /var/lib/neo4j
config: /etc/neo4j
logs: /var/log/neo4j
plugins: /var/lib/neo4j/plugins
import: /var/lib/neo4j/import
data: /var/lib/neo4j/data
certificates: /var/lib/neo4j/certificates
run: /var/run/neo4j
上記環境)
Debian GNU/Linux 10 (buster), KDE Plasma 5.14.5, KDE Frameworks 5.54.0, QT 5.11.3
2021年4月5日月曜日
Markdown note
1. Markdown
単純化したなマークアップ。HTMLの最小機能版。 マークダウンによる基本記述は、Markdown: Syntax:https://daringfireball.net/projects/markdown/syntax 実際は拡張されたmarkdownが多種ある。GitHub Flavored Markdown GFM がメジャーだと言われている。
1.1. マークダウンの表示とエディタ
基本的にはテキストエディタでさえあればマークダウンの記述は可能。拡張子は決まってない。mdの場合がほとんど。原則、html で表示する (RFC7763)。
1.1.1. Debian(debファイル)
debパッケージでインストール可能なエディタ兼プレビュー。
-
ghostwriter : サイドウィンドウに結果表示。
ホーム https://wereturtle.github.io/ghostwriter/
Debian buster では ghostwriter v1.7.4、latestは v1.8.1
Debianで最新にmake してみた。ダウンロード先 source code。v1.7.4→v1.8.1にしたらテーブルの最後の行が閉じるようになった。$ sudo apt install g++ qt5-default qtbase5-dev libqt5svg5-dev qtmultimedia5-dev qtwebengine5-dev libhunspell-dev pkg-config libqt5concurrent5 qttools5-dev-tools $ cd <your_ghostwriter_folder_location> $ qmake $ make # make install // デフォルトインストール先 /usr/local/bin/
別途、pandoc, discount, cmarkがインストールされていると、Sundown, Pandoc, Pandoc CommonMark, Pandoc GitHub-flavored Markdown, Pandoc PHP Markdown Extra, Pandoc MultiMarkdown, Pandoc Strict, Discount, cmark 型で各種エクスポートできる。
- ReText : ソースとプレビュー表示。
本来の Markdownに近い。Block codeは整形してくれない。
上記2つは、簡単にmarkdownをプレビュー見ながら入力して、html, pdf に出力できる。
- code : マイクロソフトの汎用テキストエディタ Visual studio code。Debianのパッケージ名は code。
1.1.2. Remarkable
- REMARLABLE https://remarkableapp.github.io/i かなり拡張されているので、他ではプレビューできないかも。Debian busterにremarkable_1.87_all.deb を入れようとしたら、gir1.2-webkit-3.0にダウングレードの必要があったので諦めた。
1.1.3. Typora
-
flatpakのflathub や snap 上で Typora をインストールする方法がある。
-
T for Linux に binary file Typora-linux-x64.tar.gz がある。
-
直接 Typora からインストール。
例 $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE $ sudo add-apt-repository 'deb https://typora.io ./linux/ ' $ sudo apt-get update $ sudo apt-get install typora
1.1.4. Boostnote
- Boost Noteに debファイルがある。GitHubのアカウントが必要。cloudサービス。有料版と無料版(100M)
1.1.5. Joplin
- Joplin。クラウドサービス。debはないけどLinux インストール.sh
1.1.6. Atom
- ATOM に debファイル。
1.1.7. Visual Stuido Code
Microsoftのテキストエディタ(略 VScode)。本家 Visual Studio Code
-
Debian の synapticsや aptでは、codeというパッケージ名をインストール。
-
起動するには、
- ファイル.mdを右クリック→アプリケーションで開く→Visual Studio Code
- スタート→すべてのアプリケーション→ユーティリティー→Text Editor
-
メニューの日本語化
2通りの方法
-
メニューバー: View → Command Palette を開いて Configure Display Language で検索 → Install additional languages から Japanese Language Pack for Visual Studio Code をinstall して Restart Now
-
左サイドバーの田の字の欠けたアイコンをクリック → japanese で検索 → Japanese Language Pack for Visual Studio Code : install して Restart Now
-
-
プレビューを開いた状態で起動させる
マークダウンファイル(md)を開くたびに右上のアイコンでプレビューオープンするのが面倒なら、拡張機能を利用して自動オープンにする。
メニューバー→表示→拡張機能→ (検索) 'auto-open' : Auto-Open Markdown Preview をインストール -
TOC table of contents 拡張機能使用時の問題
VScodeの「EOL end of line 行末」が autoになっていると失敗する。linuxだと$ echo "" | od -c
で行末確認できる。使用OSに従って unix系やOSXは \n、Windows系 \r\nにする。左下の歯車マークの設定から検索で'eol'で検索して変更。 -
MarkdownをHTMLで出力
拡張機能インストールで対応。markdown-pdfや vscode-pandocなど -
目次 TOC table of contents
#〜### H1〜H3で目次を作る。拡張機能 Markdown Toc (章番号の自動化も可能だけど内部参照と辻褄あわなくなったりする)、Markdown Preview Enhanced など。pandocでもTOC作成可能。
1.1.8. 番外
-
Kate : モードの切り替えでプログラミング入力に対応するKDEのテキストエディタ。kpartsplugin と KMarkdownWebViewPart でMarkdownのプレビュー可能なはずだけど現状では無理っぽい。 Katebuildで pandoc等のコマンドを通してmarkdown→htmlは可能 https://azaharblanca.blogspot.com/2021/04/kde-kate-md-html.html。
-
Okular : okular-extra-backends (と kpartsplugin)を入れると、Markdown(.md)が読める (Kateから呼び出せるらしい)ので、HTMLにエクスポートできる。
参考 https://www.maketecheasier.com/convert-markdown-to-html-in-kate-text-editor/ -
vim エディタを使用してる場合。vim-voomのインストールでmarkdownのアウトラインが表示できる。
1.2. Markdownの HTML出力
1.2.1. markdown, mmark, marked コマンド
-
Debianでは、markdownパッケージをインストールするとターミナルから markdownコマンドで md形式のファイルを html出力できる。
例 $ markdown sample.md > sample.html
<body>の中身だけの sample.htmlが出来る。 詳細は man markdown。
他に mmarkや node-marked (コマンドとしては marked) や pandocなど。
1.2.2. pandoc
-
pandocは、多くのテキストファイル形式を別形式に変換する。markdown→htmlも可能。
md→htmlの例. -s standalone <head><body>html全体を作成 $ pandoc -s sample.md -o sample.html toc : table of contents 目次作成 $ pandoc -s --toc sample.md -o sample.html GitHub-flavored Markdown(gfm)タイプのhtml出力。 $ pandoc -s -r gfm sample.md -w html -o sample.htmltemplateを入れることで、さらに拡張整形ができる。
例えば https://github.com/jgm/pandoc/wiki/User-contributed-templates > HTML > Easy Pandoc Templates の clean_menu.html を使う場合、 ~/.pandoc/templates/ を作成してここにclean_menu.htmlを置いて、# templateの使用例 $ pandoc -s --toc --template=clean_menu.html sample.md -o sample.html
以上
Debian buster, KDE, plasmashell, VScode + Markdown TOC + Markdown PDF で試した個人的なメモ
2021年4月1日木曜日
KDE Kateで md->htmlの例
概要 : Kateで作成したり開いた Markdownファイルを、Katebuildで pandocを使って html出力する。
準備 : 簡単なマークダウン sample.mdを作っておく。pandocはインストールしておく。
手順 :
0. (しなくてもいい) Kate > 設定(S) > Kateを設定(C) > 開く/保存 Open/Save > モードとファイルタイプ : ファイルタイプ [Markup/Markdown]。MIMEタイプ: 右端のアイコンをクリックして[☑markdown]にする。
Kateの下に窓が出る。[ターゲットの設定]|Active target-set[ ] |Comman/Target Working Directory/Command|と [出力]という2つのタブがある。空白なら"Active target-set:"の右の方にある+の隣をクリック。T: Target Set、"ビルド:make, クリーン:make clean, 設定:cmake -DCMAKE_..., ConfigClean" が現れる(これはデフォルト値)。
"make"もダブルクリックして削除後 "pandoc -r markdown -w html -o %f.html %f"に変更して☑。以降の3行は必要ないので、+の横端のゴミ箱マークで削除。
使用法 : Kste > ビルド(B) > Build Default Targetで、pandocを使い md -> htmlに変換できる。
その他 :
- 表示(V) > ツールビュー(V) > □ビルド出力を表示から窓を非表示にできる。
- 設定(S) > ショートカット(H)を設定から"katebuild, Build Default Target"にショートカットを設定できる。
- pandoc 以外に markdown, mmark, cmark, marked などでも可能。
2021年3月21日日曜日
Visible bell
システム設定とターミナルと bel(Visible bell)の関係
環境
Debian buster, KDE, plasmashell
シェルは bash : $ echo $0 /bin/bash
beep コマンドインストール : $ sudo apt install beep
bel = visible bell は、M/Bのコネクタに繋がれている小さな円筒形のブザー。ビッ、ブッと鳴る。音がデカイのでテープで穴を塞いでいる。
System bell on
KDE システム設定 > アクセシビリティ > ベル : ☑ システムベルを使う
command | xterm | konsole |
---|---|---|
tput bel | sound | non |
echo ^G | sound | non |
echo -e '\a' | sound | non |
echo -e '\007' | sound | non |
beep -f440 -r2 -l50 | sound | sound |
^G : Ctrl v Ctrl g |
System bell off
KDE システム設定 > アクセシビリティ > ベル : □ システムベルを使う
command | xterm | konsole |
---|---|---|
tput bel | non | non |
echo ^G | non | non |
echo -e '\a' | non | non |
echo -e '\007' | non | non |
beep -f440 -r2 -l50 | sound | sound |
konsole では echoは鳴らない。
konsoleで $ xterm -e "echo -e '\a'; sleep 1"
とすれば鳴る。
Xサーバとの関係
Visible bell mini-Howto: http://archive.linux.or.jp/JF/JFdocs/Visual-Bell/applications.html
2021年3月10日水曜日
okular で Markdown 表示
2021年2月12日金曜日
Waterfox classicの検索エンジン
Waterfoxから'Add custom search engine'を検索。
addons.mozillal.org/firefox/addon で見つかるアドオンを追加。
2)
Add custom search engine の設定例
NAME : Yahoo! Japan
Search URL : https://search.yahoo.co.jp/search?p=%s
Icon : 入力せずに [Browse]をクリック。右にY!がでる(かも)。
[Add custom serch engine]で設定終了。
3)
設定→検索 : 検索エンジン から'Yahoo!Japan'を確認。
うまくいったら、Add custom search engine アドオンは削除してもいい。
2021年1月28日木曜日
2021年1月26日火曜日
LibreOffice Calc コマンド
$ libreoffice7.0 --versionLibreOffice 7.0.3.1 ...略
$ libreoffice7.0 --calc infile.ods$ libreoffice7.0 --calc -o infile.ods
$ libreoffice7.0 --calc -o --infilter=ods:44,34,0 infile.csv
$ libreoffice7.0 --calc --convert-to ods --infilter=ods:44,34,76 infile.csv
2021年1月20日水曜日
ハイフン,ダッシュ,マイナスごとき一文字を16進数で表示
Libreoffice calc 等で意味なく穴埋めに使われるハイフン類を xxdで表示してみた。
- 半ハイフンマイナス 2d
‐ 全ハイフン e28090
― 全角ダッシュ e28095
− 全ハイフンマイナス e28892
- 全角マイナス efbc8d
ー 全角の長音 e383bc
一 全角漢字イチ e4b880
xxd はファイルを16進数でダンプするコマンド。
$ echo -n '―' | xxd -p
e28095
echo に -n を付けないと最後に改行の'0a'も表示される。
$ echo 'ー' | xxd -p
e383bc0a
自治体の関連WEBコピペ→テキストにしてsed処理→LibreOffice calcでチェックして項目選択後csv出力→awkでgraphviz用dotファイルに変更→xdot(Dot Viewer)で表示。