Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 替换分隔文件的第一个字_Unix - Fatal编程技术网

Unix 替换分隔文件的第一个字

Unix 替换分隔文件的第一个字,unix,Unix,我需要替换文件第一行的第一个字。 例如:在下面以“^”分隔的文件中,我需要将HEADER1替换为PARA1 cat FILE.TXT HEADER1^HEADER2^HEADER3^HEADER4^HEADER5^HEADER6 SUBHEADER1^SUBHEADER2^SUBHEADER3^SUBHEADER4^SUBHEADER5^SUBHEADER6^SUBHEADER7^SUBHEADER8^SUBHEADER9^SUBHEADER10^SUBHEADER11^SUBHEADE

我需要替换文件第一行的第一个字。
例如:在下面以“^”分隔的文件中,我需要将HEADER1替换为PARA1

cat FILE.TXT  
HEADER1^HEADER2^HEADER3^HEADER4^HEADER5^HEADER6  
SUBHEADER1^SUBHEADER2^SUBHEADER3^SUBHEADER4^SUBHEADER5^SUBHEADER6^SUBHEADER7^SUBHEADER8^SUBHEADER9^SUBHEADER10^SUBHEADER11^SUBHEADER12^SUBHEADER13  
10^56^Q1^Q1^95^02^ ^ ^4^20170501^20170501^ABCD^  
20^56^Q2^Q2^95^02^ ^ ^4^20170502^20170502^ABCD^  
30^56^Q3^Q3^95^02^ ^ ^4^20170503^20170503^ABCD^  
我不想使用sed查找文件中第一个出现的HEADER1并替换它。
相反,它应该适用于文件第一行的第一个字中的任何值

非常感谢您的任何建议


谢谢。

如果我理解正确,您不想使用sed,因为您认为它限制您用另一个字符串替换特定字符串?sed需要正则表达式,它允许您执行以下操作:

sed -e '1 s/^[^^]*/PARA1/' < /tmp/input.txt
sed-e'1s/^[^^]*/PARA1/'

这将用PARA1替换输入的第一个单词(仅第一行),假设单词之间用
^

分隔,谢谢W.Mann。这正是我需要的。