我需要从文件中查找第二和第三 |
(管道)字符之间的所有字符。
假设我们有一个带有如下字符串的文件(两行):
abc123 | def123 | ghi123 | jkl123 | mno123
abc123 | def123 | jkl123 | ghi123 | mno123
使用grep / sed / awk命令后,我应该
ghi123
jkl123
我很感激任何线索或帮助。
答案 0 :(得分:3)
如果您想要获得第三个元素,可以尝试使用:
echo "abc123 | def123 | ghi123 | jkl123 | mno123" | awk -F " | " '{print $5}'
或者:
echo "abc123 | def123 | ghi123 | jkl123 | mno123" | cut -d '|' -f 3 | tr -d ' '
输出:
ghi123
对于|
之间包含多个单词的字符串,您可以使用:
echo "abc123 | def123 | foo bar | jkl123 buz | mno123" | cut -d '|' -f 3 | sed -e 's/^ //' | sed -e 's/ $//'
输出:
foo bar
请注意,sed -e 's/^ //' | sed -e 's/ $//'
用于删除第一个和最后一个空格,因为tr -d ' '
会删除字符串中的所有空格。