逆引きUNIXコマンド/固定長文字列データをCSVに変換する・sed
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* 固定長文字列データをCSVに変換する・sed [#t6d4d55f]
固定長文字列データをcsvに変換したい場合は、sedを使用する...
尚、本資料の例では、対象データが固定長で1レコード毎に改...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連資料 [#d275c3c6]
-[[指定した文字数(byte)で改行する・fold>逆引きUNIXコマン...
* 使用した固定長文字列データ [#xa2c75f7]
以下に記す固定長の文字列データを使用しました。~
#ref(fixlen.dat)
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
* 各項目の長さを指定しカンマ区切りで出力 [#l9c5e7b0]
以下の例では、2、4、6と残りで区切りCSVとして出力する例で...
$ cat fixlen.dat | sed -e 's/^\(.\{2\}\)\(.\{4\}\)\(.\{6...
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
** タブ区切りにしたい場合 [#o091d9ec]
タブ区切りにしたい場合は以下のようになります。
$ cat fixlen.dat | sed -e 's/^\(.\{2\}\)\(.\{4\}\)\(.\{6...
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
** ダブルクォートで囲みたい場合 [#p7c37c23]
ダブルクォートで囲みたい場合は、以下のようになります。
cat fixlen.dat | sed -e 's/^\(.\{2\}\)\(.\{4\}\)\(.\{6\}...
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
* sedの動作について [#ld9f2aa8]
今回、指定した値で文字を区切り、カンマを挿入しました。~
sedでは、文字数は以下のうに記します。
.\{数字\}
これで、数字文の文字になります。
次に取得した文字を左辺で記すには以下のような約束事があり...
\(条件\)
今回の例では、以下の部分になります。
\(.\{2\}\)\(.\{4\}\)\(.\{6\}\)
括弧()で囲んだ部分を左辺では、\1 \2 \3 と記述します。~
1番目は\1、二番目は\2のように記述します。~
今回の例では以下の部分になります。
\1,\2,\3,
以上、sedを使って固定長文字列をCSVに変換する方法でした。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
終了行:
#navi(../)
* 固定長文字列データをCSVに変換する・sed [#t6d4d55f]
固定長文字列データをcsvに変換したい場合は、sedを使用する...
尚、本資料の例では、対象データが固定長で1レコード毎に改...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連資料 [#d275c3c6]
-[[指定した文字数(byte)で改行する・fold>逆引きUNIXコマン...
* 使用した固定長文字列データ [#xa2c75f7]
以下に記す固定長の文字列データを使用しました。~
#ref(fixlen.dat)
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
* 各項目の長さを指定しカンマ区切りで出力 [#l9c5e7b0]
以下の例では、2、4、6と残りで区切りCSVとして出力する例で...
$ cat fixlen.dat | sed -e 's/^\(.\{2\}\)\(.\{4\}\)\(.\{6...
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
12,3456,789012,345678901234567890
** タブ区切りにしたい場合 [#o091d9ec]
タブ区切りにしたい場合は以下のようになります。
$ cat fixlen.dat | sed -e 's/^\(.\{2\}\)\(.\{4\}\)\(.\{6...
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
12 3456 789012 345678901234567890
** ダブルクォートで囲みたい場合 [#p7c37c23]
ダブルクォートで囲みたい場合は、以下のようになります。
cat fixlen.dat | sed -e 's/^\(.\{2\}\)\(.\{4\}\)\(.\{6\}...
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
"12","3456","789012","345678901234567890"
* sedの動作について [#ld9f2aa8]
今回、指定した値で文字を区切り、カンマを挿入しました。~
sedでは、文字数は以下のうに記します。
.\{数字\}
これで、数字文の文字になります。
次に取得した文字を左辺で記すには以下のような約束事があり...
\(条件\)
今回の例では、以下の部分になります。
\(.\{2\}\)\(.\{4\}\)\(.\{6\}\)
括弧()で囲んだ部分を左辺では、\1 \2 \3 と記述します。~
1番目は\1、二番目は\2のように記述します。~
今回の例では以下の部分になります。
\1,\2,\3,
以上、sedを使って固定長文字列をCSVに変換する方法でした。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
ページ名: