我正享受着最美好的时光。下面是我的nawk语句:
nawk -F"\t" '{print substr($1,0,4)","substr($1,5,4)","substr($1,9,4)","$2","$3","$4","$5","$6}' filename简而言之,这是一个制表符分隔的文件。我想把第一列(12个字符)分成3列,然后用substring函数来实现。然后,我想打印不带第一列的其余数据。这是我有问题的附加部分。
在它的当前迭代中,没有6列的行将有挂起的逗号,而列超过6列的行将不会打印出来。
有什么想法吗?
发布于 2012-03-09 06:32:15
未经测试,但请尝试以下内容:
nawk -F"\t" -v OFS=, '
{$1 = substr($1,0,4) OFS substr($1,5,4) OFS substr($1,9,4)}
{print}
' filenameUpdate for comment --我假设您希望每个字段都包含在引号中:
nawk -F"\t" -v OFS=, -v q="'" '
{
$1 = q substr($1,0,4) q OFS q substr($1,5,4) q OFS q substr($1,9,4) q
for (i=2; i<=NF; i++)
$i = q $i q
print
}
' filename我将单引号作为变量传递给nawk,因为您不能将单引号嵌入到单引号字符串中。
https://stackoverflow.com/questions/9625827
复制相似问题