我有一些行,想要在读取' |'字符三次之后的字符串上进行sed操作。我怎样才能在Shell脚本中执行此操作?
输入: aaaa|bbbbb|ccccc|hello
所需的输出: aaaa|bbbbb|ccccc|hel
这是在三个' |'
之后的问候语中完成的 - > sed 's/({.3}).*/\1/g'
答案 0 :(得分:1)
使用cut
命令代替sed
:
$ echo "aaaa|bbbbb|ccccc|hello" | cut -d '|' -f 4
hello
答案 1 :(得分:1)
你没有指定你要对最后一个字段做什么来改变"你好"进入" hel"。这是一种方式:
sed -r 's/^(([^|]+\|){3})(...).*/\1\3/' file
([^|]+\|)
表示管道分隔字段(带管道)(([^|]+\|){3})
表示三个这样的字段
-r
选项-E
代替)(...)