我正在尝试使用 grep 提取文本文件名 test.txt 中的字符串“apples1” 请注意,字符串 appples1 可以具有不同数量的字符或不同的名称。 grep 如何只提取该字符串,而不考虑其字符数?我不需要 - 之后的内容。
以下是在文件中找到的内容
order = ["apples1-0548-tm00", "testme2-0548-tm01"]
我试过以下命令,但它没有给我任何输出。
cat test.txt |grep 'order' |awk '{print $3}' | tr -d \[:punct:] | cut -c 1-7
使用
awk
并将字段分隔符指定为 ["
或 -
。然后提取第二个字段。
awk -F'\\["|-' '/order/ {print $2}' test.txt
为此我会选择
sed
。首先删除破折号及其后的所有内容,然后删除双引号之前的所有内容以及双引号本身。
sed 's/-.*// ; s/.*"//' test.txt
apples1