0

newtext.csv 如下所示:

Record 1
---------
line 1 line 2 Sample Number: 123456789 (line no. 3) | | | | | Time In: 2012-05-29T10:21:06Z (line no. 21) | | | Time Out: 2012-05-29T13:07:46Z (line no. 30) 

Record 2
----------
line 1 line 2 Sample Number: 363214563 (line no. 3) | | | | | Time In: 2012-05-29T10:21:06Z (line no. 21) | | | Time Out: 2012-05-29T13:07:46Z (line no. 30) 

Record 3
---------
line 1 line 2 Sample Number: 987654321 (line no. 3) | | | | | Time In: 2012-05-29T10:21:06Z (line no. 21) | | | Time Out: 2012-05-29T13:07:46Z (line no. 30) 

假设 newtext.csv 中有这样 100 条记录所以,现在我需要输入的 i/p 字符串的参数,如下所示

Input
Enter the search String :
123456789

Output

Sample Number is, Sample Number: 123456789 
Connected Time is,Time In: 2012-05-29T10:21:06Z 
Disconnected Time is, Time Out: 2012-05-29T13:07:46Z 

这正是我需要的。您能帮我编写上述格式的 shell 脚本吗?

4

1 回答 1

1

好的,输入和期望的输出有点奇怪,但仍然不难得到你想要的,试试下面的:

var=123456789
awk -v "var=$var" --exec /dev/stdin newtext.csv <<'EOF'
  ($7 == var) {
    printf("Sample Number is, Sample Number: %s\n", $7);
    printf("Connected Time is, Time In: %s\n", $18);
    printf("Disconnected Time is, Time Out: %s\n", $27);
  }
EOF
于 2012-06-04T13:06:11.213 回答