如何将windowslinux 文本文件忙转为linuxlinux 文本文件忙

&&等windows bat文件如何改为linux shell文件语法?我写了一个java小程序,导出成jar,然后写了一个bat文件来执行。
set classpath=.;./lib/hpsocket-3.2.3-src../lib/hpsocket-3.2.3../lib/jna-4.1.0../lib/log4j-1.2.17../lib/log4jdbc-remix-0.2.8../SockertServer.jar
set APP_PATH=%~dp0
set JAVA_HOME=%APP_PATH%jre
set PATH=%APP_PATH%jre\%PATH%
java -Xms50m -Xmx350m test.Test这个是把需要的jar包以及运行的jre环境配置一下。现在需要在linux环境下执行,怎么改,一窍不通啊10个牛币所有回答列表(1)&LV4linux下执行java程序和windows下大同小异,语法稍有不同罢了,语法参考如下:
JAVA_HOME=/usr/local/jdk1.6.0_38/
PATH=$JAVA_HOME/bin:$PATH
cd /data/zuidaima_com/script/
javac -encoding utf8
-Djava.ext.dirs=. -cp . *.java
-Dfile.encoding=utf8
-Djava.ext.dirs=. -cp . com.zuidaima.test.Test注意:1.windows下分隔符是;而linux是:2.jar包多的话可以用-Djava.ext.dirs=c:/jars/3.可以指定运行时文件编码,避免乱码问题参考:等完等等等等完等等等等完最热搜索问答话题编程语言基础Web开发数据库开发客户端开发脚本工具游戏开发服务器软硬件开源组件类库相关问答完最近浏览暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级扫描二维码关注最代码为好友"/>扫描二维码关注最代码为好友qiujichun 的BLOG
用户名:qiujichun
文章数:408
评论数:104
访问量:1141140
注册日期:
阅读量:5863
阅读量:12276
阅读量:424387
阅读量:1112859
51CTO推荐博文
一、利用iconv命令进行文件内容编码转换
用法: iconv [选项...] [文件...]
有如下选项可用:
输入/输出格式规范:
-f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码
-l, --list 列举所有已知的字符集
输出控制:
-c 从输出中忽略无效的字符
-o, --output=FILE 输出文件
-s, --silent 关闭警告
--verbose 打印进度信息
-?, --help 给出该系统求助列表
--usage 给出简要的用法信息
-V, --version 打印程序版本号
iconv -f gb2312 -t utf-8 aaa.txt &bbb.txt
这个命令读取aaa.txt文件,从gb2312编码转换为utf-8编码,其输出定向到bbb.txt文件。
注:windows下写字板生成的txt一般是gb18030编码,如果指定错误会报如下错误:iconv: 未知 6071 处的非法输入序列
二、文件名编码转换
因为现在用linux,原来在windows里的文件都是用GBK编码的。所以copy到linux下是乱码,文件内容可以用iconv来转换可是好多中文的文件名还是乱码,找到个可以转换文件名编码的命令,就是convmv。
convmv -f GBK -t UTF-8 *.mp3
不过这个命令不会直正的转换,你可以看到转换前后的对比。如果要直正的转换要加上参数 --notest
convmv -f GBK -t UTF-8 --notest *.mp3
-f 参数是指出转换前的编码,-t 是转换后的编码。这个千万不要弄错了。不然可能还是乱码哦。还有一个参数很有用。就是 -r 这个表示递归转换当前目录下的所有子目录。
* 需要安装 convmv-1.10-1.el5.noarch.rpm
三、更好的傻瓜型命令行工具enca,它不但能智能的识别文件的编码,而且还支持成批转换。
  1.安装
  $sudo apt-get install enca
  2.查看当前文件编码
  enca -L zh_CN ip.txt
Simplified Chinese National S GB2312
Surrounded by/intermixed with non-text data
  3.转换
  命令格式如下
  $enca -L 当前语言 -x 目标编码 文件名
  例如要把当前目录下的所有文件都转成utf-8
  enca -L zh_CN -x utf-8 *
enca -L zh_CN file 检查文件的编码 
  enca -L zh_CN -x UTF-8 file 将文件编码转换为&UTF-8&编码 
  enca -L zh_CN -x UTF-8 & file1 & file2 如果不想覆盖原文件可以这样,很简单吧。
了这篇文章
类别:┆阅读(0)┆评论(0)在linux下,去除^M,将windows格式文件(dos文件)改为unix格式文件
在linux下,去除^M,将windows格式文件(dos文件)改为unix格式文件
linux-shell相关
& & & 在Windows系统下编辑的文件,换行符回车的格式为'\r\n',在linux系统下,回车的格式为'\n',在Windows下编辑的文本文件在上传至linux服务器时,回车'\r\n'就显示成^M+'\n'。
  在Windows环境下,用ultraedit或者notepad plus都有相应的选项可以将Windows下的文本格式文件转换成unix格式文件。比如:notepad plus中“编辑”—&“档案格式转换”—&“转换为UNIX格式”。
  在Linux下面,一般有三种方式来转换文件:
  1.使用dos2unix工具
  一般的分发版本中都带有这个小工具(如果没有可以根据下面的连接去下载),使用起来很方便:&
  $ dos2unix myfile.txt&
  该命令会去掉行尾的^M。
  2.用vi修改文件
如果文件是在windows环境下创建并编辑的,文件中所有的换行符都是'\r\n',vi会在打开文件时识别出该文件是dos格式,此时不会显示^M,在命令行模式下输入:set fileformat=unix,然后保存即可。如果文件中的换行符有些是为'\r\n',有些是'\n',在vi显示文件时,为'\r\n'将会显示为^M然后换行。这种情况可以直接用vi的替换功能。
&:%s/^M//g&&& 替换所有的^M
&:%s/^M$//g&&& 替换行尾的^M
&:%s/^M/[ctrl-v]+[enter]/g&& 将^M替换成回车
&:%s/^M/\r/g&&& 将^M替换成回车
在命令中,^M的输入方式是Ctrl+v,Ctrl+m,是一个字符,不是两个字符。(^I 制表符也是如此。)
替换后,如果去看那些内容,你会发现还没替换掉,但是如果你:x 保存退出后,再次用vi打开就发现他们已经完全被替换掉了。
  如果碰到有提示:E486: Pattern not found: ^M,单文件中实际存在^M,比如用&cat -v&或&cat -A&查看时,这种情况应该是因为文本中每行都是'\r\n'结尾,vi自动用dos模式打开,这样就看不到^M,这时候直接用:set fileformat=unix就可以了。
  3.用sed命令修改
  $ sed -e 's/^M/\n/g' myfile.txt
  ^M = Ctrl+v,Ctrl+m
来源:/zijin/p/3501912.html
我的热门文章
即使是一小步也想与你分享我使用过的Linux命令之dos2unix - 将DOS格式文本文件转换成UNIX格式 - Bash @ Linux - ITeye技术网站
博客分类:
我使用过的Linux命令之dos2unix - 将DOS格式文本文件转换成UNIX格式
本文链接:
(转载请注明出处)
dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是 0A。DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,。而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。
将DOS格式文本文件转换成Unix格式,最简单的用法就是dos2unix直接跟上文件名。
格式:dos2unix file
如果一次转换多个文件,把这些文件名直接跟在dos2unix之后。(注:也可以加上-o参数,也可以不加,效果一样)
格式:dos2unix file1 file2 file3
格式:dos2unix -o file1 file2 file3
上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用-n参数。
格式:dos2unix oldfile newfile
如果要保持文件时间戳不变,加上-k参数。所以上面几条命令都是可以加上-k参数来保持文件时间戳的。
格式:dos2unix -k file
格式:dos2unix -k file1 file2 file3
格式:dos2unix -k -o file1 file2 file3
格式:dos2unix -k -n oldfile newfile
注:unix2dos命令的使用方式与dos2unix命令的类似。
示例一 DOS格式文本文件在Linux下的表现
现在有一个脚本文件job.sh,是在Linux下用vi编辑的。
[root@jfht ~]# cat job.sh
date &job.txt
现在把它转换成DOS格式文本文件。
[root@jfht ~]# unix2dos job.sh
unix2dos: converting file job.sh to DOS format ...
尝试着运行一下。
[root@jfht ~]# ./job.sh
-bash: ./job.sh: 权限不够
[root@jfht ~]# chmod +x job.sh
[root@jfht ~]# ./job.sh
-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录
DOS格式的脚本文件时无法解释执行的,因为脚本文件的第一行是用来指定解释器的,Linux系统认为解释器是/bin/sh^M,而不是/bin/sh。
我们来通过Linux下的一些命令来看一下DOS格式文件的真面目。
[root@jfht ~]# cat -v job.sh
&== cat -v可以看到文件中的非打印字符,而不带-v参数的cat命令不行。
#!/bin/sh^M
date &job.txt^M
[root@jfht ~]# hexdump -C job.sh
&== hexdump -C可以看到文件每个字节的十六进制表示。
21 2f 62 69 6e 2f 73
|#!/bin/sh....dat|
20 3e 6a 6f 62 2e 74
78 74 0d 0a 0d 0a
|e &job.txt....|
[root@jfht ~]# vi job.sh
&== 使用vi打开时可以看到底下有[dos]的格式提示。有些版本vi显示的是行尾为^M。
date &job.txt
"job.sh" [dos
现在我们把DOS格式改回Unix格式的,看看效果。
root@jfht ~]# dos2unix job.sh
dos2unix: converting file job.sh to UNIX format ...
[root@jfht ~]# ./job.sh
可以执行了,不再报“-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录”这个错了。
[root@jfht ~]#
示例二 dos2unix -k和dos2unix -n的使用示例
[root@jfht ~]# cat &&EOF &1.txt
[root@jfht ~]# file 1.txt
1.txt: ASCII text
[root@jfht ~]# ls -l 1.txt
-rw-r--r-- 1 root root 6 11-14 09:08 1.txt
[root@jfht ~]# date
2010年 11月 14日 星期日 09:28:42 CST
[root@jfht ~]# unix2dos -k 1.txt
&== 保持文件时间戳
unix2dos: converting file 1.txt to DOS format ...
[root@jfht ~]# ls -l 1.txt
-rw-r--r-- 1 root root 9 11-14 09:08 1.txt
[root@jfht ~]# dos2unix -n 1.txt 2.txt
&== 将1.txt转换到2.txt
dos2unix: converting file 1.txt to file 2.txt in UNIX format ...
[root@jfht ~]# ls -l 1.txt 2.txt
-rw-r--r-- 1 root root 9 11-14 09:08 1.txt
-rw-r--r-- 1 root root 6 11-14 09:30 2.txt
[root@jfht ~]# file 1.txt 2.txt
1.txt: ASCII text, with CRLF line terminators
2.txt: ASCII text
[root@jfht ~]# cat -v 1.txt
[root@jfht ~]# cat -v 2.txt
[root@jfht ~]#
【1】无用的天地
【2】第二名
【3】散人笔记
浏览 40318
codingstandards
浏览: 2960272 次
来自: 上海
楼主咋没分析下源码呢?
tail -F 就可以吧
新手学习了,就是不明白为一个网卡配多个ip有什么用
不错,谢谢!
不错,谢谢!

我要回帖

更多关于 linux新建文本文件 的文章

 

随机推荐