分页: 2 / 2
Re: [问题求助] 请问如何从文本提取多处字符串为另一文件重命名?
发表于 : 2012-01-26 19:39
由 josephyoung
Points 写了:josephyoung 写了:代码: 全选
sed 's/^[^|]*|\([^|]*\)|\(.*\)|/\2_\1.exe/' Qsedlist
代码: 全选
[joe@joe-laptop test]$ sed 's/^[^|]*|\([^|]*\)|\(.*\)|/\2_\1.exe/' <<< "qvod://653125941|BA38479EE7BFBA8B4EAB68F648972889AC2D5462|勇闯夺命岛(石破天惊)-主演: 肖恩·康纳利 尼古拉斯·凯奇-BDRip.rmvb|"
勇闯夺命岛(石破天惊)-主演:肖恩·康纳利 尼古拉斯·凯奇-BDRip.rmvb_BA38479EE7BFBA8B4EAB68F648972889AC2D5462.exe
代码: 全选
sed 's/^[^|]*|\([^|]*\)|\(.*\)|/\2_\1.exe/' Qsedlist
代码还是不支持显示空格主演: 肖恩·康纳利
空格尼古拉斯·凯奇
但是不带空格的可以 用。。谢谢

仔细看了你的原贴,你得到这个文件名然后要用wine运行是吗?这样文件名中原本带空格或者别的需要用到引号或者\逃脱。
这样写:
代码: 全选
sed "s/^[^|]*|\([^|]*\)|\(.*\)|/'\2_\1.exe'/" Qsedlist
Re: [问题求助] 请问如何从文本提取多处字符串为另一文件重命名?
发表于 : 2012-01-26 21:56
由 Points
josephyoung 写了:
仔细看了你的原贴,你得到这个文件名然后要用wine运行是吗?这样文件名中原本带空格或者别的需要用到引号或者\逃脱。
这样写:
代码: 全选
sed "s/^[^|]*|\([^|]*\)|\(.*\)|/'\2_\1.exe'/" Qsedlist
不是这样的和WINE无关。我试过
人 在囧途 国语.rmvb_532F033269CCCE70552C9E01A13D25626D3E756A.exe和
'人在囧途国语.rmvb_532F033269CCCE70552C9E01A13D25626D3E756A.exe'一样能执行。我是想保留住原始格式的信息如:qvod://795605305|532F033269CCCE70552C9E01A13D25626D3E756A|人 在囧途 国语.rmvb|生成
人 在囧途 国语.rmvb_532F033269CCCE70552C9E01A13D25626D3E756A.exe就行了。。

Re: [问题求助] 请问如何从文本提取多处字符串为另一文件重命名(保留空格显示)?
发表于 : 2012-01-26 21:59
由 josephyoung
这段sed替换后不会改变空格,应该符合你的要求?
代码: 全选
wine 人 在囧途 国语.rmvb_532F033269CCCE70552C9E01A13D25626D3E756A.exe
wine '人 在囧途 国语.rmvb_532F033269CCCE70552C9E01A13D25626D3E756A.exe'
执行起来必须不一样,不用引号的话,需要这样:
代码: 全选
wine 人\ 在囧途\ 国语.rmvb_532F033269CCCE70552C9E01A13D25626D3E756A.exe
Re: [问题求助] 请问如何从文本提取多处字符串为另一文件重命名(保留空格显示)?
发表于 : 2012-01-26 22:21
由 josephyoung
你需要的不是这个吗?
代码: 全选
[joe@joe-laptop test]$ sed "s/^[^|]*|\([^|]*\)|\(.*\)|/'\2_\1.exe'/" <<<'qvod://795605305|532F033269CCCE70552C9E01A13D25626D3E756A|人 在囧途 国语.rmvb|'
'人 在囧途 国语.rmvb_532F033269CCCE70552C9E01A13D25626D3E756A.exe'
或者?
代码: 全选
[joe@joe-laptop test]$ sed "s/^[^|]*|\([^|]*\)|\(.*\)|/\2_\1.exe/" <<<'qvod://795605305|532F033269CCCE70552C9E01A13D25626D3E756A|人 在囧途 国语.rmvb|'
人 在囧途 国语.rmvb_532F033269CCCE70552C9E01A13D25626D3E756A.exe
Re: [问题求助] 请问如何从文本提取多处字符串为另一文件重命名(保留空格显示)?
发表于 : 2012-01-26 22:49
由 fnan
要保留原格式,用引号, 比如:
awk -F"|" '{sub(/\\[^_]+_/,"",$3);print $3 "_" $2 ".exe"}' QiAVlist | while read t;do cp .Qsed.exe "$t";done #这种情况可以这样。
# 具体要看什么情况下使用。
Re: [问题求助] 请问如何从文本提取多处字符串为另一文件重命名(保留空格显示)?
发表于 : 2012-01-26 23:16
由 Points
fnan 写了:要保留原格式,用引号, 比如:
代码: 全选
awk -F"|" '{sub(/\\[^_]+_/,"",$3);print $3 "_" $2 ".exe"}' QiAVlist | while read t;do cp .Qsed.exe [b]"$t"[/b];done
#这种情况可以这样。
# 具体要看什么情况下使用。
成功。。

谢谢。。要是想空格换成&号怎么写。我试过换+号行换&不行
代码: 全选
awk -F"|" '{sub(/\\[^_]+_/,"",$3);gsub(" ","+",$3);print $3 "_" $2 ".exe"}' QiAVlist | while read t;do cp .Qsed.exe ../QiAV/$t;done
Re: [问题求助] 请问如何从文本提取多处字符串为另一文件重命名(保留空格显示)?
发表于 : 2012-01-26 23:23
由 Points
josephyoung 写了:你需要的不是这个吗?
代码: 全选
[joe@joe-laptop test]$ sed "s/^[^|]*|\([^|]*\)|\(.*\)|/\2_\1.exe/" <<<'qvod://795605305|532F033269CCCE70552C9E01A13D25626D3E756A|人 在囧途 国语.rmvb|'
人 在囧途 国语.rmvb_532F033269CCCE70552C9E01A13D25626D3E756A.exe
不好意思这个也能用!!主要是我不会代码。要改
代码: 全选
while read t;do cp .Qsed.exe $t;done
为
代码: 全选
while read t;do cp .Qsed.exe “$t”;done
就行了。。谢谢。。

Re: [问题求助] 请问如何从文本提取多处字符串为另一文件重命名(保留空格显示)?
发表于 : 2012-01-27 0:20
由 fnan
Points 写了:fnan 写了:要保留原格式,用引号, 比如:
代码: 全选
awk -F"|" '{sub(/\\[^_]+_/,"",$3);print $3 "_" $2 ".exe"}' QiAVlist | while read t;do cp .Qsed.exe [b]"$t"[/b];done
#这种情况可以这样。
# 具体要看什么情况下使用。
成功。。

谢谢。。要是想空格换成&号怎么写。我试过换+号行换&不行
代码: 全选
awk -F"|" '{sub(/\\[^_]+_/,"",$3);gsub(" ","+",$3);print $3 "_" $2 ".exe"}' QiAVlist | while read t;do cp .Qsed.exe ../QiAV/$t;done
awk -F"|" '{sub(/\\[^_]+_/,"",$3);print $3 "_" $2 ".exe"}' QiAVlist |
tr ' ' '&' | while read t;do cp .Qsed.exe ../QiAV/$t;done