当前位置: 代码迷 >> 综合 >> linux ubuntu / Windows win10 文本文件读写、统计分析处理命令 (wc/cat/sed/head/tail/split) 终端刷新显示
  详细解决方案

linux ubuntu / Windows win10 文本文件读写、统计分析处理命令 (wc/cat/sed/head/tail/split) 终端刷新显示

热度:35   发布时间:2023-12-15 16:31:49.0

文章目录

    • sed
    • echo
    • sed
  • 改、文件分割与合并
    • sed
    • cat / split
    • wc
    • grep
    • cat
    • head / tail
    • find
    • less

sed

# 在文件所有行前面加字符:"images/" 
# https://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html
$ sed "s/^/images\/&/g" list1.txt # 看看效果,注意 & 是紧跟在你要在每行前面添加的字符后面的,中间没有分隔符
$ sed -i "s/^/images\/&/g" list1.txt # 直接修改原文件(最好先备份)
# 其他:在windows环境下,在每行前面加 D:/user1/mega/: sed -i "s/^/D:\/user1\/mega\/&/g" list1.txt
# 在linux环境下,在每行前面加/home/user1/ :sed "s#^#\/home\/user1\/&#g" list1.txt
# 在所有行的行尾加上字符abc
$ sed 's#$#&abc#g' list1.txt

echo

# 在文件尾部插入行
$ echo "xxxx" >> test.txt

sed

[sed -i 表示立即生效,会修改原始数据。建议操作之前先备份。或者先使用sed看效果,再使用sed -i]

# 显示以xxx开头的行:如果是匹配 [行首] ,则需要加 ^ 。如删除行首出现的find
$ sed 's/^find//' list1.txt# 删除每一行第1个到第4个字符
$ sed -r 's/.{4}//' list1.txt
# 替换反斜杠(\)用 \\ 替换斜杠(/)用 \/ 如上面的第一个例子 "images/",此时分隔符最好使用 # 或 :# 删除所有行中行首出现abc\ (去掉^ 就是删除 [第一个] 匹配到的abc\),注意不是删除匹配到的行,只是删除行首的指定字符串!!
$ sed 's#^abc\\##' list1.txt 
$ sed 's:^abc\\::' list1.txt # 删除所有包含 /xxx 的行
$ sed -i '/\/xxx/d' test.txt# 删除以 abc 开头的所有行
$ sed -i '/^abc.*/d' test.txt# 删除所有行中 以abc开始的子字符串(abc和abc之后的都删掉) 
$ sed 's/abc.*//' list1.txt# 删除文件前100行
$ sed -i '1,100d' test.txt# 删除文件的第4行到最后一行
$ sed -i '4,$d' 1.txt

改、文件分割与合并

sed

# 将文件所有行中 [包含] 的 [第一个] ‘find’替换成‘replace’。https://segmentfault.com/a/1190000020613397
$ sed 's/find/replace/' list1.txt
# 将文件所有行中 [包含] 的 [所有] 'find' 替换成 'replace',在后面加g,grep的意思
$ sed 's/find/replace/g' list1.txt

cat / split

文件分割与合并

# 将两个文件按顺序拼接,以三个为例,更多的以此类推
$ cat 1.txt 2.txt 3.txt > 123.txt
# 将一个大文件分割成 newName开头命名的 多个小文件,这里是按行数分割。https://blog.csdn.net/lkforce/article/details/71547313
$ split -l 322160 train.lst newName

wc

# 统计 行数 字节数 字数
$ wc -lcw file.txt
# 查看文件前几行和后几行

grep

# 统计文件中某个字符串出现的次数(不区分单行、多行)
$ grep -o "xxx" 123.txt | wc -l

cat

文件查看

# 查看从第100行开始的后三行(100 101 102)
$ cat test.txt | tail -n +100 | head -n 3   

head / tail

$ head -n 10 /etc/profile
$ tail -n 5 /etc/profile
# 刷新显示文件最后几行
$ tail -f abc.txt

find

# 统计包含某个字符的行数
$ find test.txt | xargs cat | grep "abc" |wc -l

less

如何查看大文件中的指定行:通过 grep -n 'abc'定位内容abc所在的行号,然后通过less打开指定的行

# 打开文件的第12345行,并支持上下滚动查看
$ less +12345g big_txt.log

其他查找:linux ubuntu 查找文件、文件夹、包含指定内容的文件 grep / locate / find


wiin10

# 统计文件行数
>type file_name.txt  | find /v /c ""
# 查看文件后3行。tail.ext下载:http://files.cnblogs.com/hantianwei/tail.zip
>tail -3 file_name.txt

鸣谢!
https://segmentfault.com/a/1190000020613397

  相关解决方案