需要将固定宽度文件转换为在unix中分隔的"逗号".
k12582927001611USNA
k12582990001497INAS
k12583053001161LNEU
Run Code Online (Sandbox Code Playgroud)
所需输出:
k,1258292700,1611,US,NA
k,1258299000,1497,IN,AS
k,1258305300,1161,LN,EU
Run Code Online (Sandbox Code Playgroud)
Mar*_*ell 15
像这样:
awk -v FIELDWIDTHS="1 10 4 2 2" -v OFS=, '{print $1,$2,$3,$4,$5}' file
Run Code Online (Sandbox Code Playgroud)
OFS是输出字段分隔符,我将其设置为逗号.该FIELDWIDTHS变量做所有的魔法为您服务.
或者你可以这样做Perl:
perl -ne 'm/(.)(.{10})(....)(..)(..)/; printf "%s,%s,%s,%s,%s\n",$1,$2,$3,$4,$5' file
Run Code Online (Sandbox Code Playgroud)
或者,sed像这样:
sed -E 's/(.)(.{10})(....)(..)(..)/\1,\2,\3,\4,\5/' file
Run Code Online (Sandbox Code Playgroud)
使用awk和substr():
awk -v OFS=, '{ print substr($0, 1, 1), substr($0, 2, 10), substr($0, 12, 4), substr($0, 16, 2), substr($0, 18, 2) }' file
Run Code Online (Sandbox Code Playgroud)
输出:
k,1258292700,1611,US,NA
k,1258299000,1497,IN,AS
k,1258305300,1161,LN,EU
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9129 次 |
| 最近记录: |