ayr*_*nna 1 ksh sed awk shell-script
输入.txt:
john_Apple01_xyz_1
john_Fruit_Apple01_abc_c1
john_Apple21_trs_1
john_Fruit_Apple21_efg_1
john_Fruit_Apple21_tefg_1
Run Code Online (Sandbox Code Playgroud)
期望的输出:
Apple01_xyz_1
Apple01_abc_c1
Apple21_trs_1
Apple21_efg_1
Apple21_tefg_1
Run Code Online (Sandbox Code Playgroud)
每次在行中找到苹果时,如何使用 nawk 或 sed 来剪切前导部分?
我在 Solaris 10 中使用 KSH。
@cuonglm 的评论说明了如何做到这一点sed:
sed -e 's/.*\(Apple\)/\1/' input.txt
Run Code Online (Sandbox Code Playgroud)
您也可以考虑使用好旧的grep:
grep -o 'Apple.*' input.txt
Run Code Online (Sandbox Code Playgroud)
警告 1 - 我手边没有任何Solaris,所以Solaris 可能grep没有这个-o选项。YMMV。
注意事项 2 - 如果您的输入文件中有根本不包含任何Apples 的行,那么这些行根本不会出现在输出中。不确定这是否是您想要的行为。如果没有,那么sed答案就足够了。