Shell 外壳:awk装饰/更换

Shell 外壳:awk装饰/更换,shell,awk,Shell,Awk,我需要一些帮助。 我有这个info.txt 我如何输出到这个,唯一剩下的字符串在括号内 我现在的命令是 awk '{ gsub("[]].*",""); print $0 }' info.txt 输出是 [hello { gg } 有了GNU awk,你可以试试吗 awk -v RS="" '{gsub(/.*\[|\].*/,"")} 1' Input_file 或 或使用简单awk: 使用GNU grep和这个好的: 例如,如果您想匹配foo和bar之间的单词,您可

我需要一些帮助。 我有这个info.txt

我如何输出到这个,唯一剩下的字符串在括号内

我现在的命令是

  awk '{ gsub("[]].*",""); print $0 }' info.txt
输出是

  [hello
  { gg
    }
有了GNU awk,你可以试试吗

awk -v RS="" '{gsub(/.*\[|\].*/,"")} 1' Input_file

或使用简单awk:


使用GNU grep和这个好的:

例如,如果您想匹配foo和bar之间的单词,您可以 可以使用:

grep -oP 'foo \K\w+(?= bar)' test.txt
您可以使用:

grep -oP "\[\K\w+(?=\])" info.txt

这里的规则是什么?是否提取方括号内第一次出现的文本?试试grep-o'\[^][]*]'info.txt | head-1 | sed的//[[]]//g'我的目标是这是唯一剩下的字符串在括号内谢谢先生。这是有效的。您能提供语法/命令使用的详细信息吗?将在min或sohi sir中添加它。我能请你帮忙吗。用这个信息。这个命令不起作用[hello]world{gg[test]}我只想让hello成为output@rkevx21,当我运行awk-F[][]'/\[.\]/{print$2}'Input\u文件并在注释中发布您的输入时,我会在输出中得到hello。让我们来看看。
awk -v RS="" 'match($0,/\[.*\]/){print substr($0,RSTART+1,RLENGTH-2)}' Input_file
awk -F"[][]" '/\[.*\]/{print $2}' Input_file


awk -F"[][]" '   ##Starting awk program here and setting field separator as [ and ] here.
/\[.*\]/{        ##Checking line if it has [.*] in it then do following.
  print $2       ##Print 2nd field of that line.
}
' Input_file     ##Mentioning Input_file name here.
grep -oP 'foo \K\w+(?= bar)' test.txt
grep -oP "\[\K\w+(?=\])" info.txt