2011-07-12 10:04:33 lw585625 阅读数 52
  • C语言项目开发系列视频课程

    项目开发流程: 1)需求分析 2)数据结构分析 3)代码架构分析 4)编写代码 5)测试发布 6)迭代更新 1、小说阅读器 做一个属于自己的阅读器,你想添加的功能分章显示、空格翻页、历史浏览记录…… 2、学员管理系统 通过学员管理系统,可以延伸更多的管理系统哦 3、cJSON 解析器 强化字符串处理, 自定义数据类型的能力. 4、日志库 ……

    791 人正在学习 去看看 杨波
文章摘要: 在Linux文件系统中,一般来说我们可以用以下方法来遍历某个目录下的文件。 for file in $(ls *); do echo ${file} done 但是,由于for语句是按照单词为单位(即空格)进行分割的,因此,当文件名称中有空格的时候,就会出现一个文件名被分成两个或者多个文件来读的情况。比如,当前目录下有下面几个文件: a.txt b.txt “c .txt” 上面的脚本执行的结果就变成 a.txt b.txt c .txt 了。 遇到这种情况怎么办?其实我们我可以用while语句

在Linux文件系统中,一般来说我们可以用以下方法来遍历某个目录下的文件。

for file in $(ls *); do

echo ${file}

done

但是,由于for语句是按照单词为单位(即空格)进行分割的,因此,当文件名称中有空格的时候,就会出现一个文件名被分成两个或者多个文件来读的情况。比如,当前目录下有下面几个文件:

a.txt b.txt “c .txt”


上面的脚本执行的结果就变成

a.txt

b.txt

c

.txt

了。

遇到这种情况怎么办?其实我们我可以用while语句加上read命令来轻松实现。

ls * | while read file; do

echo ${file}

done


即先把每个文件的名称读取到变量file中,然后再输出到屏幕上。

实现了遍历文件名带有空格的文件之后,我们所要做的就是修改文件名,除去文件名中的空格。用tr命令来实现。

echo ${old_file_name} | tr -d ‘ ‘


将该结果保存到变量new_file_name中,再用mv命令来重命名文件。

mv “${old_file_name}” ${new_file_name}


注:由于文件名中可能有空格,所以必须用引号将文件名引起来。

整个脚本如下:

ls * | while read file; do

old_file_name=${file}

new_file_name=`echo ${old_file_name} | tr -d ' '`

mv "${old_file_name}" "${new_file_name}"

done


完。
2012-04-30 15:42:53 imzoer 阅读数 33609
  • C语言项目开发系列视频课程

    项目开发流程: 1)需求分析 2)数据结构分析 3)代码架构分析 4)编写代码 5)测试发布 6)迭代更新 1、小说阅读器 做一个属于自己的阅读器,你想添加的功能分章显示、空格翻页、历史浏览记录…… 2、学员管理系统 通过学员管理系统,可以延伸更多的管理系统哦 3、cJSON 解析器 强化字符串处理, 自定义数据类型的能力. 4、日志库 ……

    791 人正在学习 去看看 杨波

去掉空白行:

tr -s ["\012"] < test.txt > newtest.txt


sed -n '/./p' temp_file5 > newtest.txt


grep . temp_file5 > newtest.txt


grep -v '^$' temp_file5 > newtest.txt


去掉多余空格:

cat test.txt | tr -s [:space:]

sed 's/__*/_/g' test.txt     这里,_表示一个空格

2011-08-16 18:52:04 Dikar 阅读数 0
  • C语言项目开发系列视频课程

    项目开发流程: 1)需求分析 2)数据结构分析 3)代码架构分析 4)编写代码 5)测试发布 6)迭代更新 1、小说阅读器 做一个属于自己的阅读器,你想添加的功能分章显示、空格翻页、历史浏览记录…… 2、学员管理系统 通过学员管理系统,可以延伸更多的管理系统哦 3、cJSON 解析器 强化字符串处理, 自定义数据类型的能力. 4、日志库 ……

    791 人正在学习 去看看 杨波

   需要将原本换行的文本都合并为一行,因为文件太大,希望通过一个命令来解决,go之发现有好的结果,故记录下。

 

   1:利用tr命令

 

cat  file1 | tr -d '\n' > outfile

 

    2: awk的直接拼接

 

 

cat file | awk '{{printf"%s",$0}}'  > outfile

 

  参考:

sed 关于换行符 "\n" 的处理

http://bbs.chinaunix.net/viewthread.php?tid=1060009&extra=&page=1

2017-05-12 15:44:19 u011803182 阅读数 964
  • C语言项目开发系列视频课程

    项目开发流程: 1)需求分析 2)数据结构分析 3)代码架构分析 4)编写代码 5)测试发布 6)迭代更新 1、小说阅读器 做一个属于自己的阅读器,你想添加的功能分章显示、空格翻页、历史浏览记录…… 2、学员管理系统 通过学员管理系统,可以延伸更多的管理系统哦 3、cJSON 解析器 强化字符串处理, 自定义数据类型的能力. 4、日志库 ……

    791 人正在学习 去看看 杨波

最近使用到sed命令进行文本处理,因从数据库中获取到的字段当中有个别字段中间包含空格,而最终保存时候要保证每个字段数据的完整性,所以默认的文本分割方式不能使用。

首先使用read读取一行数据line_data,再根据分隔符'"'进行拆分,拆分结果保存到split_data中,因数据的列数可以确定,所以对split_data进行处理时,可根据下标进行。

line_data的格式为'test1  xxxx  "test2    "test3    "test 4    "test5    "test6'这种。

之前使用for循环,在将line_data使用双引号分隔符分割之后,再用sed命令去去除每个字段后的空格及tab键。

splitline[i]=`echo ${splitline[i]}|sed -e 's/\(^[ \t] *\)//' -e 's/\([ \t]*$\)//'`



但是对于一个有4000多行,每一行有39个字段的文本来说,处理下来要6分钟左右,效率极为低下。

想要寻找一种高效的解决办法。

所知的有sed、awk、grep等方式。

---------------------------------------------------------------

现在想到一种折中的办法,先将line_data里的空格都去掉,然后后面的for循环当中就不需要使用sed命令了,能将处理速度提高到17秒左右,也算是一种改进。

line=`echo ${line}|sed -e 's/\([ \t]*\)"/"/g'`


后面用for循环的时候就可以直接拆分line_data啦。

2018-02-02 12:30:08 xwbk12 阅读数 95
  • C语言项目开发系列视频课程

    项目开发流程: 1)需求分析 2)数据结构分析 3)代码架构分析 4)编写代码 5)测试发布 6)迭代更新 1、小说阅读器 做一个属于自己的阅读器,你想添加的功能分章显示、空格翻页、历史浏览记录…… 2、学员管理系统 通过学员管理系统,可以延伸更多的管理系统哦 3、cJSON 解析器 强化字符串处理, 自定义数据类型的能力. 4、日志库 ……

    791 人正在学习 去看看 杨波

Python—-对百度文库中windows拷贝到linux的txt文档进行去除空格

原始文件的password_simple.txt文档,每个中间都有一个空格

...............................

..............................

................................

123@qwe

123qweasd

123456b

123456.cn

666666

111222

112233

778899

qazwsxedc

qazwsxedcrfv

jiandan

123abc

123654.com

qwerasdfzxcv

1qaz@wsx
root@kali:/tmp/password# 

脚本Python

root@kali:/tmp/password# cat txt.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--

import re
'''
f1 = open("/tmp/password/password_simple.txt").read()
#f2 = f1.replace("\r\n","")
f2 = re.sub(r'\s{2,}',"",f1)
f3 = open("/tmp/password/password.txt","wb")
f3.write(f2)
f3.close()
'''

file1 = open("/tmp/password/password_simple.txt","r")
result = list()
for line in open("/tmp/password/password_simple.txt"):
    line = file1.readline()
    #print line
    if line != "\n": 
        line = line.replace("\n","") 
        result.append(line)
#print result
file1.close()

for i in range(len(result)-1):
    new = open("/tmp/password/passwordnew.txt","a")
    new.write("\n"+str(result[i]))

root@kali:/tmp/password# 

脚本运行

admin123
admin456
admin789
1q2w3e4r
1234abcd
1234qwer
qq2011
qq2012
qq@2011
qq@2012
power123
woshiguanliyuan
123.456.789
123.456
123456aa
qazzaq
qweasd
qwe.123
123456movie
123456love
123456!@#$%^
12qw12qw
123@qwe
123qweasd
123456b
123456.cn
666666
111222
112233
778899
qazwsxedc
qazwsxedcrfv
jiandan
123abc
123654.com
qwerasdfzxcvroot@kali:/tmp/password# 
没有更多推荐了,返回首页