有一个文件,其中包含以下行:
*D ru.test
* R fd.dddd
*R cc.fff.ff
如何转换字符串以便输出为
ru.test
fd.dddd
cc.fff.ff
有一个文件,其中包含以下行:
*D ru.test
* R fd.dddd
*R cc.fff.ff
如何转换字符串以便输出为
ru.test
fd.dddd
cc.fff.ff
具有已知特定长度的字母数字字符串的文件,但数字的位置不同:
Z2aO9p6u8
4s5yI7H89
e0Dt14g67
3fR46i7I8
R2c0X346d
4U45v7gD9
此处所需的输出:
4s5yI7H89
e0Dt14g67
3fR46i7I8
您需要选择其中 N 是位数的行(在示例中我们取 5),并且仅选择其中每个后续数字的值大于前一个数字的行。我把这个工作构建放在一起:
cat file | grep -e '\([[:digit:]].*\)\{5\}' | while read line; do echo $line | sed 's/[[:alpha:]]*//g' | sed 's/./&:/g;s/$/'"${line}"'/' | awk -F":" '{if ($1 > $2 && $2 > $3 && $3 > $4 && $4 > $5) print$NF}' >> outfile; done
我想摆脱循环,但无法将删除字母应用于某个字段:
cat file | grep -e '\([[:digit:]].*\)\{5\}' | awk '{print$0":"$0}' | **sed 's/^[^:]*[[:alpha:]]//g'** ...
顺便从e0Dt14g67:e0Dt14g67
sed和awk的帮助下怎么弄01467:e0Dt14g67
?
上述完整的构造工作,但我想没有循环,不那么麻烦,更快,最好还是,可能 awk 在这里更合适,但 sed 也很有用。谢谢你。
Подскажите код, переименовать группу файлов?
К примеру, сейчас так:
Princess of the Dawn - Accept.mp3
Cradle Of Love - Billy Idol.mp3
Sweet Sixteen - Billy Idol.mp3
Livin On A Prayer - Bon Jovi.mp3
Runaway - Bon Jovi.mp3
The Unforgiven - Metallica.mp3
Send Me An Angel - Scorpions.mp3
Still Loving - Scorpions.mp3
Хочу так:
Accept - Princess of the Dawn.mp3
Accept - Time Machine.mp3
Billy Idol - Cradle Of Love.mp3
Billy Idol - Sweet Sixteen.mp3
Bon Jovi - Livin On A Prayer.mp3
Bon Jovi - Runaway.mp3
Metallica - Nothing Else Matters.mp3
Metallica - The Unforgiven.mp3
Scorpions - Send Me An Angel.mp3
Scorpions - Still Loving.mp3
P.S чем лучше это делать: sed, awk, rename, basename?
Система macOS.
有这个清单:
-------------------------------------------------
Studio name:
Awesome Work 1
Awesome Work 2
Awesome Work 3
-------------------------------------------------
Another Studio:
Film
-------------------------------------------------
TV Giant:
Item 1.1
Item 1.2
Item 1.3
Item 2.1
Item 2.2
-------------------------------------------------
我决定以这种方式将其翻译成语言markdown
:
### Studio Name
* Awesome Work 1
* Awesome Work 2
* Awesome Work 3
### Another Studio
* Film
### TV Giant
* Item 1.1
* Item 1.2
* Item 1.3
>
* Item 2.1
* Item 2.2
懒得手动做——我决定写一个程序,但我很快意识到我的正则表达式知识甚至不足以删除水平分隔线(---
)。
像这样写:result = result.replace(/\n?-{3,}\n?/g, "")
,但是这段代码替换了所有---
,即 即使这样:abc-------abc
=> abcabc
。
而如果,通过列表的目录,我或多或少地理解了它是如何格式化的(虽然我不知道该写什么),那么我不知道如何处理列表的元素,尤其是当有 2 个或更多组时。
帮助,如果不是解决方案,那么建议。
有一个包含内容的 test.txt 文件
text1
text2
%#
text3#text4%text5
text6%text7#text8
%
%%%%%
#
#####
我想删除同时包含 % 符号和 # 符号的行,以便输出如下所示:
text1
text2
%
%%%%%
#
#####
到目前为止,我已经到了这个sed '/%/d; /#/d' test.txt
但是它删除了包含%或# 的行,输出是这样的
text1
text2