Linuxコマンドのマニュアルページをテキストに出力したときの表示ズレを直す(man、col、>)
Linuxコマンドのマニュルをじっくり見るためにテキストで出力してみたら、
「cat」と表示されるはずが「ccccaaattttt」とか、
おかしな表示になっていた。
manコマンドをテキストで出力する(単純にリダイレクト)
man > cat.txt
「man」コマンドを、「cat.txt」という名前のテキストファイルに、
「>(リダイレクト)」する。
これで出力してみると、
NNAAMMEE
ccaatt -- concatenate and print files
(生成されたcat.txtから抜粋)
のように表示がおかしくなった。
これはマニュアルページの強調表示のためらしく、
その強調表示のコードを除去してやれば正常に表示される。
結論↓
man | col -b > cat2.txt
結果↓
NAME
cat -- concatenate and print files
(おなじく抜粋)
次回はcolコマンドの中身をみるところか・・・
記事中のソースコードを格好良く表示する
Hatena Blogを前提とした備忘録です。
$ ls -l
とか
echo 'Hello World!';
とか
>||
{ここに書く}
||<
こうなる
$ ls -l
<?php echo 'Hello World!'; ?>
さらに
>|php|
{ここに書く}
||<
こうなる
<?php echo 'Hello World!'; ?>
XMLをCSVに変換したいときはXSLT
やはりあったXML変換
構造化されたデータを分解して一覧にするとか、
別のシステムに喰わせるために整形するとかで、
XML形式のデータをcsvに変換したいという要望がありました。
やったことなかったけど、なんかあるでしょと思ったらやはりあった。
qiita.com
xslt という方式を使います。
XSLTとは
XSLTは、テンプレートファイルに沿ってXMLを処理するというものです。
今回はXML→CSVなので、項目ごとにカンマ付きのデータを生成し、
リダイレクトしてcsvファイルを作ります。
テンプレートファイルの作り方
XSLファイルを作成し、コマンドを打ちます。
csv.xsl <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" encoding="utf-8" /> <xsl:param name="delim" select="','" /> <xsl:param name="break" select="''" /> <xsl:template match="/"> <xsl:apply-templates select="root/as/a" /> </xsl:template> <xsl:template match="a"> <xsl:apply-templates /> <xsl:value-of select="$break" /> <xsl:text> </xsl:text> </xsl:template> <xsl:template match="*"> <xsl:value-of select="text()" /> <xsl:if test="following-sibling::*"> <xsl:value-of select="$delim" /> </xsl:if> </xsl:template> <xsl:template match="text()" /> </xsl:stylesheet>
test.xml <?xml version="1.0" encoding="utf-8"?> <root> <path>/tmp</path> <as> <a> <name>1</name> <al>abc</al> <date>2008-01-01</date> </a> <a> <name>2</name> <al>efg</al> <date>2009-01-01</date> </a> <a> <name>3</name> <al>xyz</al> <date>2010-01-01</date> </a> </as> </root>
上記のようにテンプレートファイル(.xsl)と元のファイル(.xml)を用意し、
コマンドを打つと結果が標準出力になります。
実行コマンド
結果
niku9:xmltest niku9$ xsltproc csv.xsl test.xml
1,abc,2008-01-01
2,efg,2009-01-01
3,xyz,2010-01-01
あとは使いやすいようファイルにリダイレクトしたりすれば良いです。
mysqlが再起動しなかったが、stop、startで解決した
mysqlに接続しようとしたら
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
と怒られた。
https://qiita.com/carotene4035/items/e00076fe3990b9178cc0
を参考にして、
サーバ再起動してみたり、
pidファイルを探しに行ったり、
tmp以下の権限を見てみたり、
したけども、いっこうにrestartが成功しない。
Eclipseで空白文字が除去される問題
スプレッドシートの値を集計したいとき、値が狂うので注意
2019/2/5追記
でも行追加(「1行を上に追加」とか)で自動的にコピーされたチェックボックスには、
値が入っていないから注意。
アップデートにより、自動的にコピーされたチェックボックスにも値が入るようになった。
さすが!
Googleスプレッドシートでチェックシートなどをつくるとき、
簡単にチェックボックスが使える。
s
値が
☑️:TRUE
🔲:FALSE
で取得できるので、
COUNTIFなどで数えるとか数えないとか普通のことができる。
=COUNTIF(G5:G7,"TRUE")
でも行追加(「1行を上に追加」とか)で自動的にコピーされたチェックボックスには、
値が入っていないから注意。
→チェックはつけられるのにカウント数が狂うし、見た目でわからない。