Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

FSはFile Separatorの略であり、Field Separatorの略でもある

以前のCLI_YAMLパーサ解析の続きです。

local fs=$(echo @|tr @ '\034')

sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \
        -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p"  $1 |
awk -F$fs '{
   ....
}

色々調べた所、どうもsedは\034... つまり、ファイル分割の制御文字(FS)を扱えないようです。
FSは記録の主流が磁気テープ媒体だった時代*1の名残で、ファイルとファイルの間を分離する記述です。
また、-Fオプションにて指定しているawkのフィールドセパレータも、同様に略称がFSです。

\034 = \x1C = ^\

\034はSUBSEPというawk組込み変数にも適用されています。
何やら多次元配列で使うものらしいのですが...よくわかりませんグヌヌ

*1:蛇足:最近ではコスパと技術革新でまたシェアが増えてるらしいです