<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Ffmepg</id>
	<title>Ffmepg - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Ffmepg"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Ffmepg&amp;action=history"/>
	<updated>2026-04-17T03:30:16Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Ffmepg&amp;diff=373&amp;oldid=prev</id>
		<title>Evan：​/* 对有字母和数字的文件名排序后合并shell version */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Ffmepg&amp;diff=373&amp;oldid=prev"/>
		<updated>2024-09-19T14:21:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;对有字母和数字的文件名排序后合并shell version&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Usage=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # mylist.txt &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
file &amp;#039;1.mp4&amp;#039;&lt;br /&gt;
file &amp;#039;2.mp4&amp;#039;&lt;br /&gt;
file &amp;#039;3.mp4&amp;#039;&lt;br /&gt;
# 这些文件是相对路径，如使用绝对路径需要添加 `-safe 0` 参数&lt;br /&gt;
$ ffmpeg -f concat -i mylist.txt -c copy  output.mp3 #or output.mp4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== 对有字母和数字的文件名排序后合并shell version==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
原因 kevin大神合并的文件是有漏的，而我想合并一些只是自己喜欢学过的比较easy的 所以&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1. 得到文件列表  &lt;br /&gt;
 &lt;br /&gt;
 ➜ for loop in `ls`&lt;br /&gt;
for&amp;gt; do&lt;br /&gt;
for&amp;gt; echo $loop &lt;br /&gt;
for&amp;gt; done &lt;br /&gt;
englishpod_B0111mydg.mp3&lt;br /&gt;
englishpod_B0113mydg.mp3&lt;br /&gt;
englishpod_B0115mydg.mp3&lt;br /&gt;
englishpod_B0119mydg.mp3&lt;br /&gt;
englishpod_C0112mydg.mp3&lt;br /&gt;
englishpod_C0114mydg.mp3&lt;br /&gt;
englishpod_C0118mydg.mp3&lt;br /&gt;
englishpod_D0117mydg.mp3&lt;br /&gt;
&lt;br /&gt;
另存到 0 &lt;br /&gt;
&lt;br /&gt;
2. 按字母 awk  sort  &lt;br /&gt;
 &lt;br /&gt;
 ➜   awk -v OFS=&amp;#039;\t&amp;#039; &amp;#039;{rec=$0; gsub(/[^[:digit:]]+/, &amp;quot;&amp;quot;, rec); print rec, $0}&amp;#039; 0  |sort -nk1 | cut -d $&amp;#039;\t&amp;#039; -f2- &lt;br /&gt;
englishpod_B0111mydg.mp3&lt;br /&gt;
englishpod_C0112mydg.mp3&lt;br /&gt;
englishpod_B0113mydg.mp3&lt;br /&gt;
englishpod_C0114mydg.mp3&lt;br /&gt;
englishpod_B0115mydg.mp3&lt;br /&gt;
englishpod_D0117mydg.mp3&lt;br /&gt;
englishpod_C0118mydg.mp3&lt;br /&gt;
englishpod_B0119mydg.mp3&lt;br /&gt;
&lt;br /&gt;
awk -v OFS=&amp;#039;\t&amp;#039; &amp;#039;{rec=$0; gsub(/[^[:digit:]]+/, &amp;quot;&amp;quot;, rec); print rec, $0}&amp;#039; 0  |sort -nk1 | cut -d $&amp;#039;\t&amp;#039; -f2-  &amp;gt;list.txt &lt;br /&gt;
&lt;br /&gt;
3.  添加head &lt;br /&gt;
➜  111 sed -i &amp;quot;s/^/file &amp;#039;/g&amp;quot; list.txt &lt;br /&gt;
file &amp;#039;englishpod_B0111mydg.mp3&lt;br /&gt;
file &amp;#039;englishpod_C0112mydg.mp3&lt;br /&gt;
file &amp;#039;englishpod_B0113mydg.mp3&lt;br /&gt;
file &amp;#039;englishpod_C0114mydg.mp3&lt;br /&gt;
file &amp;#039;englishpod_B0115mydg.mp3&lt;br /&gt;
file &amp;#039;englishpod_D0117mydg.mp3&lt;br /&gt;
file &amp;#039;englishpod_C0118mydg.mp3&lt;br /&gt;
file &amp;#039;englishpod_B0119mydg.mp3 &lt;br /&gt;
&lt;br /&gt;
添加 tail &lt;br /&gt;
➜  111 sed -i &amp;quot;s/$/&amp;amp;&amp;#039;/g&amp;quot; list.txt &lt;br /&gt;
file &amp;#039;englishpod_B0111mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_C0112mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_B0113mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_C0114mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_B0115mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_D0117mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_C0118mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_B0119mydg.mp3&amp;#039;&lt;br /&gt;
&lt;br /&gt;
cat list.txt  #最后文件列表文件排序后如下  &lt;br /&gt;
file &amp;#039;englishpod_B0111mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_C0112mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_B0113mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_C0114mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_B0115mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_D0117mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_C0118mydg.mp3&amp;#039;&lt;br /&gt;
file &amp;#039;englishpod_B0119mydg.mp3&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ffmpeg -f concat -i list.txt -c copy  111-120.mp3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== shell 解说===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
awk -v OFS=&amp;#039;\t&amp;#039; &amp;#039;{rec=$0; gsub(/[^[:digit:]]+/, &amp;quot;&amp;quot;, rec); print rec, $0}&amp;#039; file&lt;br /&gt;
    | sort -nk1 | cut -d $&amp;#039;\t&amp;#039; -f2-&lt;br /&gt;
bc14de&lt;br /&gt;
cd 18&lt;br /&gt;
abc90&lt;br /&gt;
100def&lt;br /&gt;
&lt;br /&gt;
    awk用于在输入中添加仅使用gsub的数字字符的第一列。&lt;br /&gt;
    sort -nk1用于对第一列的输入进行数字排序。&lt;br /&gt;
    cut最终用于截断第一列。&lt;br /&gt;
    &lt;br /&gt;
awk -v OFS=&amp;#039;\t&amp;#039; &amp;#039;{rec=$0; gsub(/[^[:digit:]]+/, &amp;quot;&amp;quot;, rec); print rec, $0}&amp;#039; file  \&lt;br /&gt;
   | sort -nk1 | cut -d $&amp;#039;\t&amp;#039; -f2-&lt;br /&gt;
bc14de&lt;br /&gt;
cd 18&lt;br /&gt;
abc90&lt;br /&gt;
100def&lt;br /&gt;
&lt;br /&gt;
    awk is used to add a first column in input with only numeric characters using gsub&lt;br /&gt;
    sort -nk1 is used for sorting input numerically on first column&lt;br /&gt;
    cut is finally used to truncate first column&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
https://stackoverflow.com/questions/31889233/how-to-sort-alphanumeric-by-numbers-in-shell&lt;br /&gt;
&lt;br /&gt;
https://wangchujiang.com/reference/docs/ffmpeg.html&lt;br /&gt;
&lt;br /&gt;
=install=&lt;br /&gt;
==yum==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7&lt;br /&gt;
rpm  --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro&lt;br /&gt;
 #rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm&lt;br /&gt;
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm&lt;br /&gt;
yum install -y ffmpeg #ffmpeg-devel  开发包&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=refercence=&lt;br /&gt;
[https://www.cnblogs.com/wpjamer/p/ffmpeg.html CentOS中yum安装ffmpeg]&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/weixin_40156882/article/details/121240732  nginx流媒体服务器（基于CentOS7）实现rtmp直播流，m3u8视频流]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:devops]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>