Sed 选择文本字符串

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

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-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
版本相同,除了更长的:)