cut命令是否支持将换行符作为分隔符提取文件指定行?
cut命令可以将换行符作为字段分隔符吗?
cut默认采用逐行处理逻辑,换行符是其内置的行边界标记,不支持被用作字段分隔符。
你遇到执行cut -d$'\n' -f2 foo.txt输出全部内容的原因如下:
cut处理文件时会先按换行符拆分出每一行,再对单独的每一行执行按字段分隔的逻辑。你指定字段分隔符为换行符时,单独的每一行内容中不存在该分隔符,整行会被识别为第1个字段。当cut匹配不到你指定的第2个字段时,默认会输出整行内容,最终就会打印出文件的所有行。
如果你需要提取文件的第二行,可以使用以下更合适的命令:
- sed方案:
sed -n '2p' foo.txt - awk方案:
awk 'NR==2' foo.txt - head+tail组合方案:
head -2 foo.txt | tail -1
内容的提问来源于stack exchange,提问作者sul
相关产品推荐
相关产品推荐

