我是awk的新手,我想对目录中的所有文件应用一个简单的awk命令,并分别获得每个文件的结果。这些文件是由制表符分隔的,我只需要对第11列中的每个值进行求和,并分别为每个文件打印结果。我尝试了下面的代码,但它不起作用。
for i in *;
do
awk -F '\t' '{sum += $11} END {print sum} "$i"'
done
谢谢!
我有一个模板A.tsv (字段分隔符=\t):
Name data
还有几个文件,例如B.txt和C.txt。
我想在文件名中打印文件名(但在新文件中),如下所示:
Name data
B
C
我做过这件事
template="A.tsv"
for bla in data/*.txt ; do
r="$(basename -s ".txt" $bla)"
( head -n 1 $template
awk -F'\t' -v OFS="\t" -v filename=$r '{print fil
我有一个shell脚本,可以在这样的文件夹中打印appimage文件名
#! /bin/bash
Dir="$HOME/Applications/"
Dir2="$HOME/Downloads/"
cd -P "$Dir"
for f in *.AppImage; do
z=$(echo $f | head -n1 | awk '{print $1;}')
echo $z
done
现在输出如下:
Altus-4.8.5-x86_64.AppImage
GitHubDesktop-linux-3.2.0-linux1.Ap
正在windows 7下运行GNUwin32。
在一个目录中有多个文件名如下所示:
chem.001.txt
chem.002.b4.txt
chem.003.md6.txt
(more files.txt) ...
在当前格式中,没有一个文件包括文件名。
需要清理这些文件以供进一步使用。希望将所有文件连接到一个文件中。但还需要在连接内容的开头包含文件名,以便稍后将原始文件与干净数据关联起来。
例如,单个连接文件(new_file.txt)如下所示:
chem.001.txt delimiter (could be a tab or pipe) followed by text from ch
我在这方面非常新,我尝试循环大约19000个文件(全部在一个dir中),以便在每一行的开头插入相应的文件名。
稍后,我将将这些文件连接起来,以获得包含分析所需的所有数据的文件。
文件名显示以下模式:
V_foo_V_bar每个文件名中的两个V_部件是常量的。其余的各不相同。
我试过:
for f in V*; do awk '{print "$f" $} file
我使用和不带圆括号的$f做了这件事,但两者都不起作用。
使用括号将字符串$f插入到文件名中,而不使用任何参数。
由于我已经尝试了另外几个同样徒劳的想法和挫折,我会非常感激的。
非常感谢。
我正在尝试获取目录中的文件名列表和每个文件的第一行文本,并将每对文本输出到一行以输出到.csv文件。
我尝试了一系列不同的方法来使用head、ls、find和grep以及它们的组合,但似乎无法将结果打印到一行上。我得到的最接近的结果是让它们在单独的行上打印。
下面是我需要的输出示例:
filename1.txt "this is the first line of text"
filename2.txt "this is the first line of text"
我真的不关心结果中是否有额外的字符或任何东西,因为一旦我将它们放在同一行上,我就可以很容易地在
你能帮我解决这个难题吗?我正在尝试打印文件中字符串(即行#)的位置,首先打印到std输出,然后在一个变量中捕获该值,供以后使用。该字符串为“myFile”,文件名为“myFile”,定义如下:
this is first line
this is second line
this is my string on the third line
this is fourth line
the end
现在,当我在命令提示符下直接使用这个命令时:
% awk ‘s=index($0, “my string”) { print “line=” NR, “position= ” s}’ myFile
我
我有一个文本文件vis.degrib,它看起来像这样:
Wahu,Campos,California,Egypt,Parity,London,New York,Berlin,Washington
40,56,120,110,90,50,55,67,78
56,54,100,110,75,45,65,55,60
我正在尝试创建一个shell脚本,该脚本将打印以下输出:
Wahu
Campos
California
Egypt
Parity
London
New York
Berlin
Washington
这只是打印第一行,但让x循环第一行的每一列,并打印以输出该列x(列由,分隔)。
以下是该程
我想根据column2的值从文本文件中提取column1。只有当column2大于20时,我才需要打印column1。我还需要打印输出文件的名称。我怎么用awk做到这一点呢?
file1.txt
alias 23
samson 10
george 24
file2.txt
andrew 12
susan 16
david 25
desired output
file1
alias
george
file2
david