テキストから「空白行の除去」が必要になったので、bashの時から使ってきた「sed ’s/^$//g’」を適用したが、上手くいかない;
- エラーは出ないが、
- 入力ファイルがそのままでてきてしまう。
私は「grep」コマンドに親しんでいるので、「grep」で工夫をしてみた;
• ターミナルでのトライ状況
• 結論
「空白行の除去」には「grep -v ‘^$’」を使うことにしよう。
• 感想
そろそろ、zsh特有の「=~」に挑戦するかなぁ。
•展開
どうせ使うなら、Zshらしい使い方が無いかと思って検索した。その結果、コメントに記入した2つの参考資料に従って、ダイレクトな正規表現を使えた。
#!/bin/zsh簡単な処理なら、「grep」「sed」「awk」の様な難しい文法を利用しないでも、何とかなりそうだ。
# d0l: Delete blank(0) Line from file.
#
# References:
# 1) "From Bash to Z Shell", Oliver Kiddle et.al., Chapter 13, p331-2.
# 2) "試験運用中なLinux備忘録: ファイルの内容を1行ずつ処理"
# http://d.hatena.ne.jp/kakurasan/20100112/p1
#
# Usage: d0l «file name»
#
# 2015-04-18(土) 14:21:07 by mNeji
#
file="$1"
cat "$file" | \
while read line; do
[[ "$line" =~ '^$' ]] && : || echo "$line"
done
____
このページの履歴
- 開始 2015-04-17(金) 22:46:21
- 追加 2015-04-18(土) 16:58:16 展開
0 件のコメント:
コメントを投稿