Unix/その他

ちょっとしたコマンド

cat
標準入力とテキストを結合する
$ cat one | cat - two | cat - tree
### one text ####
### two text ####
### tree text ####
join
共通のキー文字列をもつ複数のリストを結合する
$ join a b
111 aaa AAA
222 bbb BBB
333 ccc CCC
paste
複数のファイルを横に連結する
$ paste a b
111 aaa 111 AAA
222 bbb 222 BBB
333 ccc 333 CCC
pr
印刷前整形。日付やページタイトルをつける。
fmt
文章テキスト幅を調整する.文字列の場合はfoldをつかう.
expand
tabをスペースに変換する
unexpand
スペースをtabに変換する

※サンプルファイル

$ cat a
111 aaa
222 bbb
333 ccc
$ cat b
111 AAA
222 BBB
333 CCC

html/xmlパーサー

sample.html
<html>
<body>
<form>
<a href="#">sample</a>
<input name="aaa" value="123"/>
<input name="bbb" value="456"/>
</form>
</body>
</html>

特定したタグの属性値を取り出す

sed
$ export RET='\
'
$ cat sample.html | sed 's/>/>'"${RET}"'/g' | grep bbb
<input name="bbb" value="456"/>
xmllint
$ xmllint --html --shell sample.html <<<"cat //form/input[@name='bbb']/@value"
/ >  -------
 value="456"
/ >

特定したタグの要素を取り出す

xmllint
$ xmllint --html --shell sample.html <<<"cat //form/a/text()"
/ >  -------
sample
/ >



---
update at 2021/12/17 14:17:14

※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。