Linux 删除第一行并用给定数据替换第一列数据
我有像folder1,folder2,folder3…folder10这样的目录名。在每个目录中都有许多具有不同名称的文本文件,每个文本文件的顶部包含一行文本和两列数据,如下所示Linux 删除第一行并用给定数据替换第一列数据,linux,shell,for-loop,awk,sed,Linux,Shell,For Loop,Awk,Sed,我有像folder1,folder2,folder3…folder10这样的目录名。在每个目录中都有许多具有不同名称的文本文件,每个文本文件的顶部包含一行文本和两列数据,如下所示 data_example1 textfile_1000_manygthe>written 20.0 0.53 30.0
data_example1 textfile_1000_manygthe>written
20.0 0.53
30.0 2.56
40.0 2.26
45.59 1.28
50.24 1.95
data_example2 textfile_1002_man_gth<>writ
10.0 1.28
45.0 2.58
48.0 1.58
12.0 2.69
69.0 1.59
我尝试了下面的代码:但它不起作用。希望我能得到一些解决方案。谢谢
#!/bin/sh
for file in folder1,folder2....folder10
do
sed -1 $files
done
for file in folder1,folder2....folder10
do
replace ##i dont know here replace first column
类似这样的东西应该使用bash(对于
{1..10}
)、GNU-find(对于+
结尾)和GNU-awk(对于-i-inplace
):
好的,很好用。你是如何成为如此多的专家的?你能和我分享一些技巧吗?我对脚本编写还不熟悉。我很感激你的赞扬,但我已经在Unix中编程了大约40年,我不是专家,我只知道如何正确地将这些工具用于最基本的目的。只要继续在这里和stackexchange.com上提问,阅读其他人的问题和答案,不要认为任何产生预期结果的答案都是好答案——这是确定好答案的起点,而不是终点。一定要在上阅读常见问题,在上忽略所有内容,然后获得Arnold Robbins的《有效的AWK编程》第五版
#!/bin/sh
for file in folder1,folder2....folder10
do
sed -1 $files
done
for file in folder1,folder2....folder10
do
replace ##i dont know here replace first column
#!/usr/bin/env bash
find folder{1..10} -type f -exec gawk -i inplace '
{ print FILENAME, $0 | "cat>&2" } # for tracing, see comments
NR==FNR { a[NR+1]=$1; print; next }
FNR>1 { $1=a[FNR]; print }
' /wherever/replace_first_column.txt {} +