to
我想打印后面有的国家~:
。
welcome~:to~:Germany
welcome~:no please~:Italy
welcome~:to~:Brazil
welcome~:not ok~:China
注:我不知道除了“ to
”之外还会有什么。它可以是任何内容并且可以更改(例如no please
, not ok
)。
我尝试使用 cut、awk、sed。但我无法弄清楚。
awk -F "~:" '{print $2 $NF}'
但我得到的输出如下:
toGermany
no pleaseItaly
toBrazil
not okChina
如何过滤to
.以外的国家/地区
更新:
替代解决方案:(通过剪切找出):-)
grep -v "to" |cut -d ':' -f3
答案1
当您使用~:
作为字段分隔符时,您可以检查第二个字段是否等于to
并打印第三个字段,即国家/地区:
awk -F"~:" '$2 == "to" { print $3; }' file
结果:
Germany
Brazil
答案2
不要忘记sed
解决方案:
sed -n '/~:to~:/s/.*://p'
或更快(可能是)
sed '/~:/{s/to~:/\n/;D}'