我已经编写了这段代码,希望从seat.txt筛出选定的行。但它似乎没有用。请帮忙!
echo `sed -n "/$NUM/p" seating.txt`
文件如下:
29;,A2,A3,A1,E2,B1,B2,C1,C3,C2,D1,D2,D3,E1,E3,A4,E4,B3,B4,C4,D4
29;,A1,A2,A3,A4,B2,E4,C3,B3,D3,D2,E1,E2,C2,B4,C4,D4,C1,D1,E3,B1
43;,A2,D4,C3,B3,A4,E4
44;,A1,D4,E2,C3,A2
44;,A1,B2,C3,D4,A4
答案 0 :(得分:3)
目前尚不清楚你究竟要完成什么。如果您尝试打印出现$NUM
的行,则代码可以正常运行:
NUM=29
sed -n "/^$NUM/p" file
结果:
29;,A2,A3,A1,E2,B1,B2,C1,C3,C2,D1,D2,D3,E1,E3,A4,E4,B3,B4,C4,D4
29;,A1,A2,A3,A4,B2,E4,C3,B3,D3,D2,E1,E2,C2,B4,C4,D4,C1,D1,E3,B1
如果您尝试传递一个行号,请尝试:
NUM=4
sed -n "$NUM{p}" file
结果:
44;,A1,D4,E2,C3,A2
答案 1 :(得分:1)
如果你想要一个包含$ NUM的行,那就是:
grep "$NUM" file
如果你想要在第一个分号之前有一个完全$ NUM的行:
grep "^$NUM;" file
如果您想要行号$ NUM,那么它是:
awk -v num="$NUM" 'NR==num' file
如果你想要别的东西,请告诉我们什么,并发布一些预期的输出与你发布的样本输入一起。