这样做是否有"规范"方式?我一直在使用head -n | tail -1
哪种技巧,但我一直想知道是否有一个Bash工具专门从文件中提取一行(或一系列行).
"规范"是指一个程序,其主要功能就是这样做.
我正在尝试从基于列的"空格"调整的文本流中提取某个(第四个)字段.我正在尝试以cut
下列方式使用该命令:
cat text.txt | cut -d " " -f 4
不幸的是,cut
不会将多个空格视为一个分隔符.我本可以通过awk进行管道传输
awk '{ printf $4; }'
或者sed
sed -E "s/[[:space:]]+/ /g"
崩溃的空间,但我想知道是否有任何办法处理cut
和本地几个分隔符?
有没有办法使用cut命令为更多空格指定字段分隔符?(比如""+)?例如:在下面的字符串中,我想达到值'3744',我应该说什么字段分隔符?
$ps axu | grep jboss
jboss 2574 0.0 0.0 3744 1092 ? S Aug17 0:00 /bin/sh /usr/java/jboss/bin/run.sh -c example.com -b 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
cut -d' '
不是我想要的,因为它只适用于一个空间.
awk
不是我正在寻找的,但如何处理'削减'?
谢谢.
我的命令输出类似于:
1540 "A B"
6 "C"
119 "D"
Run Code Online (Sandbox Code Playgroud)
第一列始终是数字,后跟空格,然后是双引号字符串.
我的目的是仅获得第二列,例如:
"A B"
"C"
"D"
Run Code Online (Sandbox Code Playgroud)
我打算用它<some_command> | awk '{print $2}'
来完成这个.但问题是,第二列中的某些值包含空格,这恰好是分隔awk
字段的默认分隔符.因此,输出搞砸了:
"A
"C"
"D"
Run Code Online (Sandbox Code Playgroud)
如何干净地获得第二列的值(带配对的引号)?
太麻烦了:
awk '{print " "$4" "$5" "$6" "$7" "$8" "$9" "$10" "$11" "$12" "$13}' things
Run Code Online (Sandbox Code Playgroud) 我正在尝试从DbgView日志文件中删除前两列(我不感兴趣).我似乎无法找到从第3列开始直到行结束的示例.请注意,每一行都有可变数量的列.
在shell上,当我需要一个特定的列时,我会输入awk.
这打印了第9列,例如:
... | awk '{print $9}'
Run Code Online (Sandbox Code Playgroud)
如何告诉awk打印所有列,包括和列9之后,而不仅仅是第9列?
我有一个文件,每行有很多行,有很多列(字段)用空格分隔""每行的列数不同我想删除前两列怎么样?
如何使用svn
命令行工具从SVN结帐中删除所有未跟踪的文件?为此目的Git和Hg提供clean
和purge
命令,但我在SVN中找不到相应的命令.
我不在乎是否必须在此过程中恢复所有本地修改(在这种情况下,我基本上希望将我的结帐恢复到原始状态)或者对跟踪文件的本地修改是否可以保持不变; 两种情况都可以接受.
假设我们有这个数据文件.
john 32 maketing executive
jack 41 chief technical officer
jim 27 developer
dela 33 assistant risk management officer
Run Code Online (Sandbox Code Playgroud)
我想打印使用 awk
john maketing executive
jack chief technical officer
jim developer
dela assistant risk management officer
Run Code Online (Sandbox Code Playgroud)
我知道可以用它来完成for
.
awk '{printf $1; for(i=3;i<NF;i++){printf " %s", $i} printf "\n"}' < file
Run Code Online (Sandbox Code Playgroud)
问题是它长而且看起来很复杂.
是否有其他简短的方法来打印其余的字段.