|
藍森林 http://www.lslnet.com 2006年6月26日 11:18
請教如何將源碼中的多行空行轉換為一行空行?
請教如何將源碼中的多行空行(可能含有空格或TAB)轉換為一行空行?
代碼示例如下:
#include <stdio.h>
extern int errno;
main()
{
typedef enum _fwbool {T, F} FWBOOL;
char szLine[80];
FILE *fpFile;
int i;
FWBOOL this = F;
int iRet;
printf( "this is [%d]\n", this );
fpFile = fopen( "b", "w+" );
iRet = setvbuf( fpFile, (char *)NULL, _IONBF, 0 );
iRet = 100;
printf( "iRet is [%d]\n", iRet );
for( i = 0; ; i++ ){
printf( "iRet is [%d]\n", iRet );
perror( "this" );
}
exit( -1 );
fprintf( fpFile, "this is a test !\n" );
} |
請教如何將源碼中的多行空行轉換為一行空行?
tr -s '\n' <urfile |
請教如何將源碼中的多行空行轉換為一行空行?
| 請教如何將源碼中的多行空行轉換為一行空行?
又把原來沒有空行的地方加上空行啦!原來沒有空行的地方應該保留為沒有空行! |
請教如何將源碼中的多行空行轉換為一行空行?
| 請教如何將源碼中的多行空行轉換為一行空行?
[code]#!/bin/awk -f
#ScriptName:delMultiSpace.awk
{
while($0 ~ /^[[:space:]]*$/){i++;getline}
if(i>1){i=0;printf"\n%s\n",$0}else{print}
}[/code]
測試:
[code]awk -f delMultiSpace.awk yourprogfile
#include <stdio.h>
extern int errno;
main()
{
typedef enum _fwbool {T, F} FWBOOL;
char szLine[80];
FILE *fpFile;
int i;
FWBOOL this = F;
int iRet;
printf( "this is [%d]\n", this );
fpFile = fopen( "b", "w+" );
iRet = setvbuf( fpFile, (char *)NULL, _IONBF, 0 );
iRet = 100;
printf( "iRet is [%d]\n", iRet );
for( i = 0; ; i++ ){
printf( "iRet is [%d]\n", iRet );
perror( "this" );
}
exit( -1 );
fprintf( fpFile, "this is a test !\n" );
}[/code] |
請教如何將源碼中的多行空行轉換為一行空行?
cat urfile|uniq 不行嗎?! :( |
請教如何將源碼中的多行空行轉換為一行空行?
thank you! |
請教如何將源碼中的多行空行轉換為一行空行?
多謝斑竹與bjgirl!下面是我在斑竹基礎上改進的代碼,因為要保留單行的空行(最後行除外)。
[code]#!/bin/ksh
awk '
BEGIN {
label = 1;
}
length( $0 ) == 0 {
label++;
continue;
}
{
if( label == 0 )
print $0;
else {
if( NR == 1 ){
print $0;
}
else {
print "\n" $0;
}
}
label = 0;
}
' urFile [/code] |
請教如何將源碼中的多行空行轉換為一行空行?
| 請教如何將源碼中的多行空行轉換為一行空行?
斑竹說得對!此處用 length( $0 ) == 0 是錯的! |
請教如何將源碼中的多行空行轉換為一行空行?
版主的代碼來點註釋好麼? |
請教如何將源碼中的多行空行轉換為一行空行?
indent -sob filename.c |
請教如何將源碼中的多行空行轉換為一行空行?
| 請教如何將源碼中的多行空行轉換為一行空行?
sed -n '/^ $/{
N
'/^ $/D
}' urfile |
請教如何將源碼中的多行空行轉換為一行空行?
sed -n '/^ $/{
N
/^ $/D
}' urfile
不好意思,剛才的帖子多打了一個『 :) |
| |