from htmlinsert(): Localfile, /amazontext, does not exist. Localfile, /amazontext, does not exist. Wiki page, /amazontext, does not exist.
gseq 19641010 20200724 | gdate -f- +%Y%m%d 2>/dev/null | awk '$0=$1";obase=2;"$1";obase=10"' | bc | gsed '2~2s/./& /g' | awk '{printf $0" "}NR%2==0{print ""}' | awk '{l=2;r=NF;while(l<=r){if($l!=$r)next;l++;r--}print $0}'
19660713 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 19660905 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 19770217 1 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 19950617 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 20020505 1 0 0 1 1 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 20130201 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 real 0m8.913s user 0m10.720s sys 0m2.224s
ブルートフォースなんで遅いですね。。。
gseq 19641010 20200724 # 探索期間内の日付を生成
| gdate -f- +%Y%m%d 2>/dev/null # 日付として有効なものを抽出
| awk '$0=$1";obase=2;"$1";obase=10"' # 日付を2進数表示させるための bc スクリプト?を生成
| bc # 日付と、2進数表示の生成
| gsed '2~2s/./& /g' # 2進数表示を1桁毎に分割
| awk '{printf $0" "}NR%2==0{print ""}' # 2行を1行に結合
| awk '{
# 2進数の左端、右端から順に対象かを調べる
l=2;
r=NF;
while(l<=r){
# 非対称なら中断して次の入力データを処理
if($l!=$r)next;
# 対称だったら比較桁を移動
l++;
r--
}
# 左右対称な2進数表記を出力
print $0
}'