我正在研究shell脚本及其新功能。我想提取两个$$
个字符之间的字符串,例如:
输入:
$$extractabc$$
输出
extractabc
我使用了grep和sed,但没有解决。欢迎任何建议!
答案 0 :(得分:0)
您可以
input:$$extractabc$$ output:extractabc
假设文件包含awk
。 $
使用input:
作为分隔符将您的数据分成多个部分。第一项为extractabc
,下一项为空,下一项为sed -e 's/.*$$\(.*\)$$.*/\1/' file.txt
。
您可以像这样使用sed来获取相同的信息。
sed
.*$$(.*)$$.*
在$$ s之间查找信息并将其输出。目标是键入类似.*
的内容。贪婪,但只和我在一起。
(.*)
-即,$$之前的零个或多个字符。\1
。在$$ s之间找到的字符串被赋予占位符{{1}} 答案 1 :(得分:0)
使用grep
PCRE(如果有)和环顾四周:
$ echo '$$extractabc$$' | grep -oP "(?<=\\$\\$).*(?=\\$\\$)"
extractabc
答案 2 :(得分:0)
echo '$$extractabc$$' | awk '{gsub(/\$\$/,"")}1'
extractabc
答案 3 :(得分:0)
这是另一种变化形式:
echo "$$extractabc$$" | awk -F"$$" 'NF==3 {print $2}'
它会测试两组$$
,然后才打印$$
之间的内容
也可以用于blabla$$some_data$$moreblabla
答案 4 :(得分:0)
如何删除输入中的所有$?
$ echo '$$extractabc$$' | sed 's/\$//g'
extractabc
与tr
$ echo '$$extractabc$$' | tr -d '$'
extractabc