Sed 选择文本字符串
ABCDchinchwad18-Mar-2010-11.sql.zip ABCDsolapur18-Mar-2010-10.sql.zip 如何查找“ABCD”和日期“2010年3月18日”之间的字符串 预期结果: 钦克瓦德Sed 选择文本字符串,sed,awk,Sed,Awk,ABCDchinchwad18-Mar-2010-11.sql.zip ABCDsolapur18-Mar-2010-10.sql.zip 如何查找“ABCD”和日期“2010年3月18日”之间的字符串 预期结果: 钦克瓦德 solapur也许你应该去regexps "ABCDchinchwad18-Mar-2010-11.sql.zip".match(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]; //chinchwad "ABCDsolapur18
solapur也许你应该去regexps "ABCDchinchwad18-Mar-2010-11.sql.zip".match(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]; //chinchwad "ABCDsolapur18-Mar-2010-10.sql.zip".match(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]; // solapur “ABCDchinchwad18-Mar-2010-11.sql.zip”。匹配(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]//钦克瓦德 “ABCDsolapur18-Mar-2010-10.sql.zip”。匹配(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1];//索拉普尔
也许你应该去regexps "ABCDchinchwad18-Mar-2010-11.sql.zip".match(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]; //chinchwad "ABCDsolapur18-Mar-2010-10.sql.zip".match(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]; // solapur “ABCDchinchwad18-Mar-2010-11.sql.zip”。匹配(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]//钦克瓦德 “ABCDsolapur18-Mar-2010-10.sql.zip”。匹配(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1];//索拉普尔 或者使用sed
ls ABCD*zip | sed 's/^ABCD//;s/[0-9][0-9]-.*-.*//'
或者使用awk
ls ABCD*zip | awk -F"[0-9][0-9]-|ABCD" '{print $2}'
或者使用sed
ls ABCD*zip | sed 's/^ABCD//;s/[0-9][0-9]-.*-.*//'
或者使用awk
ls ABCD*zip | awk -F"[0-9][0-9]-|ABCD" '{print $2}'
文件名包含以下输入内容 ABCDchinchwad18-Mar-2010-11.sql.zip ABCDsolapur18-Mar-2010-10.sql.zip 输出是 钦克瓦德 索拉普尔
文件名包含以下输入内容 ABCDchinchwad18-Mar-2010-11.sql.zip ABCDsolapur18-Mar-2010-10.sql.zip 输出是 钦克瓦德 索拉普尔
Perl在这里会做得很好:
ls *.zip | perl -pe 's/ABCD (\w+) \d{2}-\w{3}-\d{4} .*/$1/x'
如果必须使用查找:
find . -maxdepth 1 -name \*.zip |
perl -pe 's/.* ABCD (\w+) \d{2}-\w{3}-\d{4} .*/$1/x'
Perl在这里会做得很好:
ls *.zip | perl -pe 's/ABCD (\w+) \d{2}-\w{3}-\d{4} .*/$1/x'
如果必须使用查找:
find . -maxdepth 1 -name \*.zip |
perl -pe 's/.* ABCD (\w+) \d{2}-\w{3}-\d{4} .*/$1/x'
输出:
chinchwad
solapur
pune2
要删除由find
添加的路径,请执行以下操作(该操作比以下操作更灵活、可移植和可维护):
输出:
chinchwad
solapur
pune2
要删除由find
添加的路径,请执行以下操作(该操作比以下操作更灵活、可移植和可维护):
#找到-maxdepth 1-name.zip“| sed-r's/([A-Z]+)([A-Z]+)/\2/”###./chinchwad和./solapur#如何删除路径?@shantanuo,如果您使用的是maxdepth 1,那么您最好使用ls
查找列表-maxdepth 1-name.zip“| sed-r's/([A-Z]+)([A-Z]+)/\2/”###./chinchwad和./solapur#如何删除路径?@shantanuo,如果您使用的是maxdepth 1,您最好使用ls
进行列表。字符串中可以有一个数字。例如,ABCDpune218-Mar-2010-10.sql.zip#,在本例中我想返回pune2。字符串中可以有一个数字。例如,ABCDpune218-Mar-2010-10.sql.zip#,在这种情况下我想返回pune2。@ghostdog74,OP在上面的注释中有一个新的要求。@ghostdog74,OP在上面的注释中有一个新的要求。使用find具有递归优势,但使用maxdepth 1与您的ls
版本相同,除了更长的:)使用find具有递归优势,但是使用maxdepth 1与您的ls
版本相同,除了更长的:)