背景: 外包的代码里有很多windows换行符号,只想查找不想替换,于是对这个^M符号产生了新的看法。
没有:
cat content.php |grep -rin "\r\n"
有:
cat index.php |grep \r\n
$setData['username'] = $data->username;
但这都是不对的:
回忆未来-向东-Jàck  下午 05:40:02
怎么查找文件里有windows换行啊?兄弟。我硬是拦住了。
我想grep一整个目录,查到有windows换行的文件。
老罗新  下午 05:57:46
window换行是ctrl+V+M
grep -R */* "^M"
老罗新  下午 05:59:08
或者
find .  -type f|xargs grep "^M"
回忆未来-向东-Jàck  下午 05:59:36
我用了\r\n,我试试哈:
[root@localhost site]# find .  -type f|xargs grep "^M"
[root@localhost site]#
里面有一个文件有window换行,没找到呀,哈。

老罗 下午 06:11:54
俺这里是没有问题的。
find ./ -name a.c -type f |xargs grep "^M"
是不是那个"^M",你输入的不对?
—————————这玩意输入不能粘贴:注意:一跟三两种方法中的^M都是ctrl+v再ctrl+m后产生的———————
老罗新  上午 10:22:34
你输入的^M是使用ctrl+v+m敲出来的吧。
回忆未来-向东-Jàck  上午 10:23:10
不是。
我直接贴的你的。
老罗新  上午 10:23:42
怪不得。要先按着ctrl不松,然后依次按v和m
回忆未来-向东-Jàck  上午 10:24:18
哈哈,就是这个问题,好了。
那在vim里查找哩?
也这样可以吧,哈哈。
老罗新  上午 10:24:44
也一样
回忆未来-向东-Jàck  上午 10:25:56
复制粘贴都不行,非得这样整出来。
————
以前都是dos2unix,是想给外包找到这些文件,
这玩意太高深了,吼吼,多谢多谢,这方法好。
老罗新  上午 10:26:22
不客气

按Ctrl+v+m即可,复制粘贴有可能会提示找不到^M:
http://www.dbdream.org/?p=454

实践OD:
http://www.boyunjian.com/do/article/snapshot.do?uid=net.csdn.blog/wzb56/article/details/6860358
先生成一个换行(\n, 0x0A)和回车(\r, 0x0D)组合的文本
$ echo -en '12\n34\r56\n\r78\r\n' > tmp
以十六进制方式查看文本
$ od -t x1 tmp
0000000 31 32 0a 33 34 0d 35 36 0a 0d 37 38 0d 0a
实践:
[root@test od]# echo -en '12\n34\r56\n\r78\r\n' > tmp  
[root@test od]# ls
tmp
[root@test od]# od -t x1 tmp
0000000 31 32 0a 33 34 0d 35 36 0a 0d 37 38 0d 0a
0000016
————————————————————————————————
Linux编辑器vim中删除行尾的^M

有时候,在 Linux 中使用打开曾在 Windows 中编辑过的文件时,会在行尾看到 ^M 字符。看起来总是感觉很别扭。
删除方法如下:
在 Vim 的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中的所有 ^M 字符。
注意: ^M 要用 Ctrl + v,  Ctrl + m 来输入,M 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换。


OJ判题时发现一个问题:用%c读入的代码都会报wa。后来发现跟scanf有关。在linux下使用%c会读到\n和\r两个字符。所以需要将^M(也就是\r)字符删掉
删除方法不少。找了一个比较简单的。
要将a.txt里的^M去掉并写入b.txt,则使用如下指令cat a.txt | tr -d "^M" > b.txt
注意:语句中的^M是通过ctrl+V, ctrl+M输入的。特指/r字符
来自:http://hi.baidu.com/xyhouse/item/1598874e9bc2f80f6dc2f09c

linux 去除 windows 换行符:
解决方法:

1.通过sed命令解决

就是这个破命令废了我好大劲
1
  
sed -i -e "s/\cM//g"  filename

之前走了弯路虽然实现了但是总是觉得不爽才发现可以这么使用。之前写的命令是”s/[^A-Za-z0-9\"\)\_]$//g”其实这样也是可以的,原理很简单因为一般的匹配开始无法找到^M但是我发现通过正则匹配是可以匹配到的。因此上面那个公式的意思就是查找行尾除了字母数字符号以外的符号,其实就剩下控制符啦。很山寨哦
2.通过vim转换文件格式解决

这个方法虽然早就知道但是不适合我这次的需求但是写出来备档

:set fileformat?查看当前文档格式会显示为fileformat=[unix|dos|mac]其中过一种
把一个dos格式的文件转换成unix格式可以通过以下两步完成:
:set fileformat=unix
:write

3.通过tr命令解决

tr -d “[\015]” < file >/tmp/file

tr是个很好处理控制符号的程序但是没弄明白怎么修改当前文件,因此多数只能用作转换,file为源文件。/tmp/file为转换后的文件

其实很简单的问题解决起来也未必简单,希望这里的备档能给大家帮助
来自:http://www.wo1768.com/?p=1073


Windows和Unix的换行符处理^M


在windows上写好的文件,在Linux或者Unix下打开,每一行都会出多出^M这样的字符,这是因为Windows与*nix的换行符不同所致,如果是一般的文件影响倒是不大,但如果是写的脚本文件,那有可能就执行不了。对于行数比较少相对简单的文件来说,直接删掉然后保存就可以了。

1、但是如果这个文件要是有几百上千行,一行一行删除是要累死人的,有没有好的办法呢?
答案是:在Vi的命令模式中输入:%s/^M$//g后,回车即会自动删除该文件中的所有^M字符。
%指匹配整个文件,s是置换的意思,^M要分另用(Ctrl+V)和(Ctrl+M)来输入,M后面的$代表匹配行尾的内容,最后的g则表示每行中匹配到的内容都要置换。

2、如果我某一目录下有很多这样的文件怎么办?总不能每个文件都用Vi修改一次吧?
答案是:用unix2dos来解决。在Freebsd系统ports安装unix2dos很简单:
root# whereis unix2dosroot# cd /usr/ports/converters/unix2dos root# make install clean

安装完之后,就可以运行这个命令进行转换了:
root# dos2unix /root/tmp/*

3、如果我有很多目录及子目录都有这样的文件怎么办呢?别急,我们用find的递归命令处理:
root# find /root/tmp –type f –exec dos2unix {} \;

此命令之后,tmp目录下所有文件及子目录下的文件全部都被转换了。简单吧!

备注:unix2dos还有另外一个作用就是把unix格式的文件转化成Windows格式的文件,就是命令反过来:unix2dos ,比如我想看一下Apache的日志,就需用这个命令转换一下。

来自:http://hi.baidu.com/izhaohan/item/042709bd6b6136d084dd79d9
  EP 列模式 去掉自动换行。按住ALT键。然后使用左键进行拖动即可。不要觉得文字少,找这东西的人一看就应该明白了。不明白的就算了。

然后在选定的里面点右键--》格式--》填充选定行-插入  即可实现列编辑!
  EP 列模式 去掉自动换行。按住ALT键。然后使用左键进行拖动即可。不要觉得文字少,找这东西的人一看就应该明白了。不明白的就算了。

然后在选定【注意用:ALT键选定喔】的里面点右键--》格式--》填充选定行-插入  即可实现列编辑!
如将:***
前面加上如下的语句:
update Tbl_Card_ZQ set  FStatus = 0 where FCode='
然后可能需要做下面的操作呢,因为往往在写sql语句如需要批量替换:FCode='***  为: FCode='***';

update Tbl_Card_ZQ set  FStatus = 0 where FCode='***

update Tbl_Card_ZQ set  FStatus = 0 where FCode='***

update Tbl_Card_ZQ set  FStatus = 0 where FCode='***


Ctrl+h 勾选正则,点击一下倒立的三角形图标,选择换行:

\n$
替换为:
';

点全部替换:


update Tbl_Card_ZQ set  FStatus = 0 where FCode='***';

update Tbl_Card_ZQ set  FStatus = 0 where FCode='***';

update Tbl_Card_ZQ set  FStatus = 0 where FCode='***'


注意:最后一行没有替换掉,需要自己补全!
一. yum是什么
yum = Yellow dog Updater, Modified
主要功能是更方便的添加/删除/更新RPM包.
它能自动解决包的倚赖性问题.
它能便于管理大量系统的更新问题阅读全文
修改提交地址:

<script language="JavaScript" type="text/JavaScript">
function submituserinfo()
{  
  var action=document.form1.action;  
  //alert($('input[type=radio][name='kind'][checked]').size());
  var radios=$('input[name=kind]');
  if($('input[name=kind]:checked').size()==0)
  {
    alert("提示:请选择一个兑换的类别");
    return;
  }
  else
  {

    if($('input[name=kind]:checked').val()==81)  
    {

      $('#form1').attr('action','/con/user/act/showregisters').submit();
      
    }
    else
    {
      $('#form1').attr('action','/con/user/act/getyrb').submit();  
    }
  }

}
</script>

function submituserinfo()
{
  if($('#FTrueName').val()=="")
  {
    alert("真实姓名不能为空!");
    $('#FTrueName').focus();
    return false;
  }  
  var mobile = $('#FMobile').val();
  
  if(isNaN(mobile)||mobile.length != 11)
  {
    alert("请输入正确的手机号码");
    $('#FMobile').focus();
    return false;
  }  
   var strm = $('#FEmail').val()   //提交mail地址的文本框
   //var regm = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;//验证Mail的正则表达式,^[a-zA-Z0-9_-]:开头必须为字母,下划线,数字,
   if (strm == "")
     {
       alert("请检查邮箱输入是否正确!");
    $('#FEmail').focus();
    return false;
     }
  

  if($('#FAddr').val()=="")
  {
    alert("地址不能为空!");
    $('#FAddr').focus();
    return false;
  }
  
  if($('#FCode').val()=="")
  {
    alert("邮编不能为空!");
    $('#FCode').focus();
    return false;
  }
  
  
  document.form1.submit();
}
</script>



Demo:
(一)戴志康sns神话背后的悖论
这个帖子想谈一个靠sns能否留住一个网友的问题。
在说之前,请大家问自己一下,你平时用多少个IM软件?平时最经常去多少个网站?阅读全文
针对近期外界声称“腾讯开始试水SNS市场”这一说法,腾讯称,这是一个误会,因为“腾讯一直做的就是SNS”。

腾讯互联网业务系统执行副总裁吴宵光认为,由于facebook的兴起,人们以为像校内网那样填写真名、上传真照片才是真正的SNS,这是把SNS的定义狭窄化了。阅读全文
IE浏览器,随便点一个东西,都是从新窗口打开,怎么办啊?我是普通的XP自带的浏览器,问题补充:是很普通的XP自带的
我就是不想老是同新窗口打开啊
有办法吗?
答案:
呵呵 ,是ie7或者以上的版本吧?你想让点开的网页在新的选项卡中显示,是不是?
打开ie——工具——常规——选项卡——设置——遇到弹出窗口时——选择始终在新的选项卡中打开弹出窗口
或者:
打开ie——工具——常规——更改网页在选项卡的显示方式
各位大侠,现小弟想做一个220VAC输入2000W的温控器,但需用可控硅进行温度精确控制的,请问如何实现,以及如何对可控硅进行选取?如有相关资料也可以!!!请各位大侠不惜赐教,指点迷津!


如果对频率要求不高,只要用普通可控硅,要注意它的额定功率,额定电压,额定电压大于220v,如果输入正弦波电压,额定功率大于1274w 阅读全文
尽管"翻页Flash相册多彩版"功能全面,但是制作一个令人惊叹的的翻页相册却是十分简单的,您要做的仅仅是添加您的照片,并选择一个合适的模板就可以了。我们针对重大节日制作了生日,结婚,节日等模板,您也可以制作自己的模板以重复利用或共享给他人。阅读全文
在VMWARE下安装完了LINUX,默认的分辨率是800*600,在linux的"显示设置"里怎么改然后重新启动或注销都没有变化,要想改变linux的分辨率,必须安装vmware tools,具体过程如下:
1.在VM下拉菜单里有一选项Install vmware tools,你必须先启动你的虚拟机,不然选项是灰色的,不可用。启动之后点击他,在你的limux的/tmp目录下就会出现一个叫vmware-linux-tools.tar.gz的包。
2.解压缩这个包在当前的目录,会产生一个vmware-tools-distrib的目录。
3.在终端输入init 3,切换到命令行模式。
3.运行vmware-install.pl 文件,然后一路回车,完了之后会,成功了会有一个分辨率的列表出来,选一个分辨率即可;
4.重新启动x-windows即可:init 5
然后,开始享受吧。
在很多人的心中,PC只是用于文字处理或者玩游戏的工具。但是PC能
做的绝对不只是这些。在合适的硬件,操作系统配置下,PC所能表现的,甚至超越数十万, 数百万的高级专业服务器。阅读全文
程序在得到一个Segmentation fault这样的错误信息毫无保留地就跳出来了,遇到这样的问题让人很痛苦,查找问题不亚于你N多天辛苦劳累编写代码的难度。那么有没有更好的方法可以在产生SIGSEGV信号的时候得到调试可用的信息呢?看看下面的例程吧!阅读全文
北京 sina 企业邮箱,老是需要重启(已经替换php掉了,rpc在salary上运行很正常,但是在freebsd上就有僵尸和无缘无故死掉的可能),可能是超时没有人连接:
转下面一个网路上哥们的文章,但是他没有提出解决方案,呵呵,等于没有说:阅读全文
网路
争夺封包(packet)的速度,除了网路卡好坏之外,最重要的还是作业系统跟 驱动程式,使用一样的网路卡salary >> FreeBSD > Linux >>> DOS+NCSA. 而且
FreeBSD 在 RPC 及 NFS 上都比 Linux 来的稳定及快速。毕竟 BSD 在网路
这方面是始祖
文章出处:DIY部落(http://www.diybl.com/course/6_system/linux/Linuxjs/2008620/127159.html)


之前 snnn 提的 FreeBSD RPC 实现的问题,我想我们需要抽时间来好好修整一下 userland RPC 库的代码。现在内核的 RPC 实现实际上是基于用户态 RPC 实现做的,并且 MT/MP safe,这样和 Solaris 里面的新版 TI-RPC 比,移植前者的代价要小一些,如果可能的话,我希望也能减少一些代码重复,不过大概看了一眼两边的接口,这边是 fd,那边是 so,除了消除全局和静态变量之外,其他部分恐怕也要多下功夫才行。

阅读全文
在ARM Linux上使用Apache+PHP阅读全文
当时还觉得rails就是冲着php的市场去的。。。现在反而觉得rails的思想拯救了php...

大家觉得是应该继续说服客户呢? 还是就用山寨rails了呢?



PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接、加载系统类库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资源,随后的请求就不必再次初始化资源了。

这种机制的差异带来的区别就是:

1、PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光。而Python/Ruby则需要依赖GC来回收内存,因此稍有不慎,还是会出现GC无法释放的内存泄露问题。

2、PHP每次请求都要初始化资源,这个开销非常大。所以尽管PHP解析器本身的运行速度是极快的,但是一旦使用复杂的PHP框架,那么由于需要每次请求的时候初始化整个框架,性能的下降非常厉害,你用一个很复杂的PHP框架的结果就是整体性能被Ruby远远甩开。这也是为什么PHP社区这么多年来,并不怎么倾向于使用框架的原因之一。

3、由于PHP这种每请求初始化资源的机制,也造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这种限制使得PHP始终保持在一个比较简单的web语言上面,而正是这一点才是PHP得以成为互联网第一Web编程语言的原因,因此也未必就不好。

总之,PHP和Ruby的差异还是很大的,不适合放在一起比较,其实应该比较的是Ruby和Python才对。

所以我觉得Rails这种框架性做法被PHP跟风以后,其实是把PHP带上了邪路,所以不如说是Rails在误导PHP的发展。顺便多说一句:DHH在编写basecamp之前,一直是用PHP的,并且自己还写了一个PHP的快速开发框架,他改用ruby以后,把当初自己写的PHP框架也移植过来了,这个框架实际上是Rails最初的原型。那么为什么DHH当初不直接基于PHP做Rails呢?非要改用ruby以后,才发表rails呢?你看看PHP这种运行机制就知道了,PHP做复杂的web开发框架并不是一条光明的道路。 .
返回顶楼  
分页: 199/264 第一页 上页 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 下页 最后页 [ 显示模式: 摘要 | 列表 ]