我想问一问如何从TextN之前的长度/样式不同的字符串中获取 TextN 。剪切,sed和awk?任何例子,我都感激。
2018/08/09-20:45:50.671483-06359-06359-433191088669655042-004- TextN
2018/08/09-20:45:50.668677-06359-06359-002-006- TextN
2018/08/09-20:45:50.668677-063-063-002-006- TextN
谢谢。
对不起,**是零件代码标签。
答案 0 :(得分:1)
如果文本用双星包裹,并且在其他地方不存在...
$ awk -F'**' '{print $2}' file
TextN
TextN
TextN
否则请发布一个更具代表性的示例。
还有sed
$ sed -E 's/.*\*\*([^*]+)\*\*.*/\1/' file
如果textN中没有空格,并且它是最后一个用空格分隔的字段...
$ awk '{print $NF}' file
因为字符,空格具有特殊含义,所以您必须仔细选择示例输入...
答案 1 :(得分:0)
要使用awk
完成@karakfa的sed
示例,请执行以下操作:
sed -i -E "s/.*\*\*([a-zA-Z]+)\*\*/\1/" <your-text-file>
仅当您的TextN
与[a-zA-Z]
匹配时,上一个示例才有效。您还可以使用更复杂的功能或添加其他字符。如果您实际上不知道会有什么字符,请执行以下操作:
sed -i -E "s/.*\*\*(.+)\*\*/\1/" <your-text-file>
如果您的字符串不在文件中,而是环境变量或只是变量:
echo $line | sed -E "s/.*\*\*(.+)\*\*/\1/"