linux合并ts文件吗,UNIX LINUX MACOS shell 下载合并*.ts视频
问题描述:
下载一个网页上的流媒体视频,通过查看发现,网页有个播放列表XXX.m3u8文件,视频为*.ts格式,0.ts、1.ts、... N.ts。
初步解决方式:
通过迅雷批量下载*.ts文件。但无法快速合并。因为文件名为0.ts、1.ts、11.ts、12.ts、13.ts、.....、2.ts、21.ts、22.ts、23.ts,系统无法按照顺序排序,需要重命名为000.ts、001.ts、002.ts、003.ts、004.ts、005.ts、006.ts、....
快速重命名方案:
1、核心循环框架
for f in *.ts; do echo "$f"; done
# 逐行显示本目录下的所有后缀名为.ts的文件
ls | grep .ts
# 等价命令
这是一个压缩写法,实际可以写多行。写成一行(适用于终端命令提示符)
for f in *.ts #声明并创建了变量f
do
echo "$f" #使用变量f
done
2、核心替换语句
sed -e 's/^.*\.mp4_//g' 1.txt > 2.txt
# 正则表达式部分
^ 表示的行首 (与之对应的是 $ 表示的行尾)。
. 表示的是匹配除了换行以外的任意单字符。
* 表示0次或N次匹配前一个规则或字符。
[ ] 表示的匹配括号内的规则。
# sed的命令部分
sed 是流编辑(stream editor),就是逐行处理编辑工具。
-e 可以不加
's/aaa/bbb/g' 这是标准的正则表达式。把aaa替换为bbb。
常用命令:
a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
3、核心截取语句
url="www.baidu.net"
echo ${url: 0-9} #省略 length,直接截取到字符串末尾
# 结果为baidu.net。
格式 说明
${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start} 从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: 0-start :length} 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
${string: 0-start} 从 string 字符串的右边第 start 个字符开始截取,直到最后。
${string#*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string##*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string%*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
${string%%*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
4、核心重命名语句
mv a.mp4 b.mp4
#重命名a.mp4为b.mp4
5、核心赋值语句
将一条命令的执行结果赋给一个变量的方法有:
1、使用反引号``
如:a=`echo "hello world"`;
即将命令 echo "hello world"的输出赋给变量a
2、可以使用 $()
如:a=$(echo "hello world")
即将命令echo "hello world"的输出赋给变量a
6、最终语句总结
for f in *.ts; do g=$(echo $f | sed 's/^.*\.mp4_/00/g') ;mv $f ${g:0-6} ; done;
合并文件:
cat *.ts > combine.ts
linux合并ts文件吗,UNIX LINUX MACOS shell 下载合并*.ts视频相关推荐
- 简要介绍一下Dos/Windows格式文件和Unix/Linux格式文件(剪不断理还乱的\r\n和\n)
DOS文件(windows格式文件)中,按一下ENTER就是输入了\r\n,这就是回车换行 MAC文件里,用\r换行 UNIX文件里,用\n换行 自己尝试了一些\r \n的组合,归纳了下规律: win ...
- linux 几个文件夹作用,linux下每一个文件夹的作用.docx
目录结构及主要内容 "/"根冃录部分有以F子冃录: /usr 口录包含所有的命令.程序库.文档和英它文件.这些文件在正常操作中不会被改变的.这个目录也包含你的Linux 发行版本的 ...
- linux 穿件文件_关于Linux的25件事
linux 穿件文件 今天是Linux 25年的历史,这是有史以来最成功的软件. 在本周的LinuxCon上,Linux基金会的Jim Zemlin在主题演讲中表达了钦佩,赞美和激动,他说:" ...
- linux下启动tlq命令,UNIX/LINUX命令
1 如何查看磁盘使用情况 查看磁盘空间 df -k 可以看出磁盘空间使用情况.以及分区或者逻辑卷的挂载目录等. $ df -k Filesystem 1024-blocks Free %Used Iu ...
- linux蓝牙接收文件路径,在Linux中设置蓝牙,方便文件传输、连接耳麦
在 Windows 和 macOS 上对蓝牙功能进行配置都非常容易,用户可以很简单地就连接蓝牙鼠标.键盘.耳机或其它任何蓝牙配件.而在 Linux 系统中使用蓝牙连接就不那么方便了,至少我还没遇到过能 ...
- linux 烧片文件生成,在Linux上烧录CD
在Linux上烧录CD Linux为创建CD提供了功能强大且灵活的工具.您可以创建在几乎任何平台上都可读的盘,还可以创建.iso文件以供下载和分发. 在任何平台上从命令行烧录CD都是一件令人费解且烦躁 ...
- linux给脚本文件赋权限,linux编写.sh脚本并赋权限问题
linux编写.sh脚本并赋权限问题 今日打包编译项目时,发现缺少一个git pull更新项目的脚本,所以在linux编写了一个gitpull.sh脚本,能够实现更新项目的需求. 1.首先vi gi ...
- linux光盘镜像文件在哪,linux下如何读取使用iso 镜像文件的方法
如果拷贝到本地,可以使用mount mount fileName mountPoint -o loop,fileName是镜像文件名(*.iso,*.img), 用例:如我有一个/home/rhel5 ...
- linux文件系统中文件基本权限,Linux文件权限基本属性图文详解
[概述] 在 Linux 系统中,不同的用户处于不同的地位,拥有不同的权限,为保护系统安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. Linux 系统的每一个文 ...
- linux c++ 程序运行时间,总结UNIX/LINUX下C++程序计时的方法
前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序 ...
最新文章
- srs audio sandbox 注册机_Windows10自带 Sandbox软件测试必备技巧
- 只有与众不同才能生存
- LINUX下安装ORACLE,完全搞定
- 你真的认识 “ 数据中心网络 ” 吗?
- HashSet与HashMap源代码深度剖析
- boost::mp11::mp_eval_if_q相关用法的测试程序
- either fix the issues identified by lint, or modify your build script as follows
- 三分钟教你用 Scarlet 写一个 WebSocket App
- San 3.7.4 发布,百度开源的 MVVM 组件框架
- Python中写一个乒乓球类的游戏
- 电子之嵌入式主流芯片浏览
- 大数据之-Hadoop之HDFS_NameNode故障处理_NameNode元数据恢复_案例---大数据之hadoop工作笔记0073
- 大数据_Hbase-API访问_Java操作Hbase_封装操作数据的工具类---Hbase工作笔记0015
- 首次打开文件简单分析
- 如何利用缓存提高asp.net网站访问速度
- 【C语言】02-第一个C程序
- 20阶乘matlab,matlab如何调用阶乘函数求阶乘的和
- Spring Security 单点登录系统
- python爬虫练习之爬取豆瓣读书所有标签下的书籍信息
- VS code(Visual Studio Code)乱码解决方法